{
    "name": "Ainovaq Content API",
    "description": "Public, read-only JSON API for Ainovaq blog articles, categories, pages and site search, plus an A2A agent. No API key or authentication needed.",
    "version": "1.0.0",
    "base_url": "https://ainovaq.com/wp-json/",
    "authentication": "none",
    "access": {
        "price": "free",
        "signup_required": false,
        "api_key_required": false,
        "approval_required": false,
        "read_only": true,
        "sandbox": "Not needed: every endpoint is read-only, so the production API is safe to test against.",
        "rate_limit": "120 requests per minute per IP address. Every response has RateLimit, RateLimit-Policy and X-RateLimit-* headers; over the limit you get 429 with Retry-After.",
        "scopes": {
            "content:read": "anonymous",
            "services:read": "anonymous",
            "agent:invoke": "anonymous",
            "exports:create": "anonymous (10 jobs/hour/IP)",
            "exports:read": "anyone with the job ID"
        },
        "write_scopes": "none: the public API is read-only",
        "permissions_doc": "https://ainovaq.com/developers/#permissions-and-scopes",
        "idempotency": "POST endpoints (A2A, MCP) accept an Idempotency-Key header: same key + same body within 24 h returns the stored response with Idempotent-Replayed: true; same key + different body returns 422; still running returns 409.",
        "first_request": "https://ainovaq.com/wp-json/wp/v2/posts?per_page=1&_fields=id,title,link"
    },
    "openapi": "https://ainovaq.com/openapi.json",
    "api_catalog": "https://ainovaq.com/.well-known/api-catalog",
    "documentation": "https://ainovaq.com/developers/",
    "versioning": {
        "scheme": "URL path (/wp-json/wp/v2/, /wp-json/aq/v1/)",
        "breaking_changes": "Only in a new version; the previous version keeps working alongside it.",
        "deprecation_notice": "Deprecation header (RFC 9745) + Link rel=\"deprecation\"; Sunset header (RFC 8594) at least 6 months before removal.",
        "policy": "https://ainovaq.com/developers/#deprecation-policy",
        "deprecated": [
            {
                "path": "/swagger.json",
                "use": "/openapi.json",
                "sunset": null
            },
            {
                "path": "/.well-known/agent.json",
                "use": "/.well-known/agent-card.json",
                "sunset": null
            }
        ]
    },
    "endpoints": [
        {
            "method": "GET",
            "url": "https://ainovaq.com/wp-json/wp/v2/posts",
            "description": "List or search blog articles (?search=, ?per_page=, ?_fields=).",
            "example": "https://ainovaq.com/wp-json/wp/v2/posts?search=mvp&per_page=3&_fields=id,title,link"
        },
        {
            "method": "GET",
            "url": "https://ainovaq.com/wp-json/wp/v2/posts/{id}",
            "description": "One blog article."
        },
        {
            "method": "GET",
            "url": "https://ainovaq.com/wp-json/wp/v2/categories",
            "description": "Blog categories.",
            "example": "https://ainovaq.com/wp-json/wp/v2/categories?_fields=id,name,slug,count"
        },
        {
            "method": "GET",
            "url": "https://ainovaq.com/wp-json/wp/v2/pages",
            "description": "Site pages.",
            "example": "https://ainovaq.com/wp-json/wp/v2/pages?_fields=id,title,link"
        },
        {
            "method": "GET",
            "url": "https://ainovaq.com/wp-json/wp/v2/search",
            "description": "Search articles and pages.",
            "example": "https://ainovaq.com/wp-json/wp/v2/search?search=go-to-market"
        },
        {
            "method": "POST",
            "url": "https://ainovaq.com/wp-json/aq/v1/batch",
            "description": "Batch read: up to 20 GET calls to the endpoints above (and \u2026/exports/{id}) in one request; one {id, status, headers, body} entry per call. Each call counts toward the rate limit.",
            "example": "{\"requests\":[{\"id\":\"a\",\"path\":\"/wp/v2/posts?per_page=3\"},{\"id\":\"b\",\"path\":\"/wp/v2/search?search=mvp\"}]}"
        },
        {
            "method": "POST",
            "url": "https://ainovaq.com/wp-json/aq/v1/exports",
            "description": "Async job: export all articles (or pages) with full text. Returns 202 + Location; poll GET \u2026/exports/{id} (Retry-After) until status is succeeded, then GET \u2026/exports/{id}/result.",
            "example": "{\"type\":\"articles\",\"include_content\":true}"
        },
        {
            "method": "POST",
            "url": "https://ainovaq.com/wp-json/aq/v1/a2a",
            "description": "A2A agent (JSON-RPC 2.0, method message/send): questions about services, blog and contact.",
            "agent_card": "https://ainovaq.com/.well-known/agent-card.json"
        },
        {
            "method": "POST",
            "url": "https://ainovaq.com/mcp",
            "description": "MCP server (Streamable HTTP, JSON-RPC 2.0): tools list_services, get_service_details, search_blog, get_contact_info.",
            "server_card": "https://ainovaq.com/.well-known/mcp/server-card.json"
        }
    ],
    "contact": "info@ainovaq.com"
}