{
    "success": true,
    "api_name": "BotForge Developer API",
    "version": "1.0.0",
    "description": "A unified REST API to retrieve extensions, functions, events, enums, guides, and analytics from BotForge.",
    "authentication": {
        "type": "API Key",
        "header": "X-API-Key",
        "query_parameter_fallback": "key",
        "note": "Include your API key in all requests to endpoints under /v1/"
    },
    "public_endpoints": {
        "extensions": {
            "url": "/v1/extensions",
            "method": "GET",
            "description": "Fetch verified extensions or specific documentation details.",
            "query_parameters": {
                "name": "String. Optional. Fetch profile of a specific extension.",
                "resource": "String. Optional. Fetch sub-resource for an extension. Choices: \"functions\", \"events\", \"enums\". (Requires \"name\" parameter)."
            }
        },
        "guides": {
            "url": "/v1/guides",
            "method": "GET",
            "description": "Fetch list of approved guides or query a specific guide.",
            "query_parameters": {
                "id": "Integer. Optional. Fetch full content of a specific guide.",
                "search": "String. Optional. Search guides by title or content.",
                "page": "Integer. Optional. Pagination page (default: 1).",
                "limit": "Integer. Optional. Results per page (default: 20)."
            }
        },
        "discord": {
            "url": "/v1/discord",
            "method": "GET",
            "description": "Query standard Discord application metadata and settings.",
            "query_parameters": {
                "resource": "String. Optional. The type of resource to return. Choices: \"intents\", \"permissions\", \"scopes\", \"events\", \"calculate\"."
            }
        },
        "validate": {
            "url": "/v1/validate",
            "method": "POST",
            "description": "Validate ForgeScript code with function metadata and report syntax issues, operator prefix usage, bracket errors, and argument count mismatches.",
            "body": {
                "code": "String. Required. The ForgeScript source code to validate."
            }
        }
    },
    "private_endpoints": {
        "analytics_views": {
            "url": "/v1/analytics/views",
            "method": "GET",
            "description": "Fetch documentation view counts (total & unique views). [Requires Private API Key]",
            "query_parameters": {
                "package_name": "String. Required. The package/extension name (e.g. \"ForgeScript\").",
                "item_type": "String. Optional. Filter by \"function\", \"event\", \"enum\", or \"guide\".",
                "item_name": "String. Optional. Filter by specific function name, event name, etc. (Requires \"item_type\")."
            }
        },
        "analytics_feedback": {
            "url": "/v1/analytics/feedback",
            "method": "GET",
            "description": "Fetch helpfulness rating summaries (useful vs unuseful counts). [Requires Private API Key]",
            "query_parameters": {
                "package_name": "String. Required. The package/extension name (e.g. \"ForgeScript\").",
                "item_type": "String. Optional. Filter by \"function\", \"event\", \"enum\", or \"guide\".",
                "item_name": "String. Optional. Filter by specific function name, event name, etc. (Requires \"item_type\")."
            }
        },
        "analytics_api": {
            "url": "/v1/analytics/api",
            "method": "GET",
            "description": "Fetch developer API usage volume and performance stats. [Requires Private API Key]",
            "query_parameters": {
                "start_date": "String. Optional. Starting date filter (YYYY-MM-DD, default: 7 days ago).",
                "end_date": "String. Optional. Ending date filter (YYYY-MM-DD, default: today).",
                "endpoint": "String. Optional. Filter by specific request path (e.g. \"/v1/extensions\").",
                "auth_tier": "String. Optional. Filter by client tier (\"anonymous\", \"public\", \"private\")."
            }
        }
    }
}