{
  "openapi": "3.0.3",
  "info": {
    "title": "Ainovaq Content API",
    "version": "1.0.0",
    "description": "Public, read-only JSON API for Ainovaq (https://ainovaq.com), the AI venture studio. Search and read blog articles, categories and site pages. No API key or authentication is needed. Built on the WordPress REST API. Rate limit: 120 requests per minute per IP address, reported in RateLimit, RateLimit-Policy and X-RateLimit-* response headers; over the limit the API answers 429 with Retry-After. POST endpoints accept an Idempotency-Key header for safe retries.\n\nVersioning: URL-based (/wp/v2/, /aq/v1/). Breaking changes only ship in a new version, and the previous version keeps working alongside it. Deprecation policy: deprecated endpoints are marked `deprecated: true` here and send a `Deprecation` header (RFC 9745) with `Link: rel=\"deprecation\"` to the policy; removal happens no sooner than 6 months later, announced by a `Sunset` header (RFC 8594). Policy: https://ainovaq.com/developers/#deprecation-policy. No endpoint in this document is deprecated. Pagination: article and page lists use cursor-based pagination (cursor parameter, X-Next-Cursor header, Link rel=\"next\"); page numbers are still accepted. Long-running work uses the async job pattern: POST /aq/v1/exports returns 202 + Location; poll it, then fetch the result.\n\nPermissions: no authentication. Each operation declares its scope in x-required-scopes (content:read, services:read, agent:invoke, exports:create, exports:read); all are granted to anonymous callers. See https://ainovaq.com/developers/#permissions-and-scopes.",
    "contact": {
      "name": "Ainovaq",
      "email": "info@ainovaq.com",
      "url": "https://ainovaq.com/developers/"
    },
    "termsOfService": "https://ainovaq.com/terms-and-conditions/",
    "x-deprecation-policy": "https://ainovaq.com/developers/#deprecation-policy",
    "x-api-lifecycle": {
      "status": "stable",
      "versioning": "url-path",
      "minimumDeprecationNoticeDays": 180,
      "deprecationHeader": "RFC 9745",
      "sunsetHeader": "RFC 8594",
      "policy": "https://ainovaq.com/developers/#deprecation-policy"
    },
    "x-permission-scopes": [
      {
        "scope": "content:read",
        "description": "Read published articles, pages, categories and search results.",
        "grantedTo": "anonymous",
        "credentials": "none"
      },
      {
        "scope": "services:read",
        "description": "Read Ainovaq services and contact details (MCP tools, A2A agent).",
        "grantedTo": "anonymous",
        "credentials": "none"
      },
      {
        "scope": "agent:invoke",
        "description": "Send messages to the A2A agent (read-only answers).",
        "grantedTo": "anonymous",
        "credentials": "none"
      },
      {
        "scope": "exports:create",
        "description": "Start bulk export jobs (max 10 per hour per IP).",
        "grantedTo": "anonymous",
        "credentials": "none"
      },
      {
        "scope": "exports:read",
        "description": "Poll export jobs and download their results.",
        "grantedTo": "anonymous",
        "credentials": "none"
      }
    ],
    "x-auth": {
      "required": false,
      "model": "Public, read-only API. Every scope below is granted to anonymous callers without credentials; there are no write or private scopes in the public API. Content management (create/edit/delete) is not exposed to API clients.",
      "documentation": "https://ainovaq.com/developers/#permissions-and-scopes"
    }
  },
  "externalDocs": {
    "description": "Developer documentation",
    "url": "https://ainovaq.com/developers/"
  },
  "servers": [
    {
      "url": "https://ainovaq.com/wp-json",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "Articles",
      "description": "Blog articles on startups, go-to-market, marketing, hiring, SaaS and AI development."
    },
    {
      "name": "Categories",
      "description": "Blog categories."
    },
    {
      "name": "Pages",
      "description": "Site pages such as services, about and methodology."
    },
    {
      "name": "Search",
      "description": "Search across articles and pages."
    },
    {
      "name": "Agent",
      "description": "A2A (Agent2Agent) agent: ask about services, the blog and contact details."
    },
    {
      "name": "Exports",
      "description": "Async jobs: export every article or page with full text in one JSON document. Start a job (202), poll its status, then fetch the result."
    },
    {
      "name": "Batch",
      "description": "Batch reads: up to 20 GET calls to the read-only endpoints in one request, each with its own status and body."
    }
  ],
  "paths": {
    "/wp/v2/posts": {
      "get": {
        "tags": [
          "Articles"
        ],
        "operationId": "listArticles",
        "summary": "List or search blog articles",
        "description": "Returns published blog articles, newest first. Use `search` to find articles by keyword and `_fields` to limit the response size. Pagination: use cursor (X-Next-Cursor / Link rel=\"next\") to walk through all results; page is still supported.",
        "parameters": [
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/cursor"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "name": "categories",
            "in": "query",
            "description": "Only articles in these category IDs (comma-separated).",
            "schema": {
              "type": "string",
              "example": "29"
            }
          },
          {
            "name": "slug",
            "in": "query",
            "description": "Only the article with this URL slug.",
            "schema": {
              "type": "string",
              "example": "startup-mvp-development"
            }
          },
          {
            "name": "orderby",
            "in": "query",
            "description": "Sort field.",
            "schema": {
              "type": "string",
              "enum": [
                "date",
                "modified",
                "title",
                "relevance"
              ],
              "default": "date"
            }
          },
          {
            "$ref": "#/components/parameters/order"
          },
          {
            "$ref": "#/components/parameters/fields"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of articles.",
            "headers": {
              "X-WP-Total": {
                "$ref": "#/components/headers/Total"
              },
              "X-WP-TotalPages": {
                "$ref": "#/components/headers/TotalPages"
              },
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              },
              "X-Next-Cursor": {
                "$ref": "#/components/headers/NextCursor"
              },
              "Link": {
                "$ref": "#/components/headers/Link"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Post"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "x-pagination": {
          "style": "cursor",
          "cursorParam": "cursor",
          "nextCursorHeader": "X-Next-Cursor",
          "nextLinkRel": "next",
          "limitParam": "per_page"
        },
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/wp/v2/posts/{id}": {
      "get": {
        "tags": [
          "Articles"
        ],
        "operationId": "getArticle",
        "summary": "Get one blog article",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fields"
          }
        ],
        "responses": {
          "200": {
            "description": "The article.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Post"
                }
              }
            },
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/wp/v2/categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "operationId": "listCategories",
        "summary": "List blog categories",
        "parameters": [
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/fields"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of categories.",
            "headers": {
              "X-WP-Total": {
                "$ref": "#/components/headers/Total"
              },
              "X-WP-TotalPages": {
                "$ref": "#/components/headers/TotalPages"
              },
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Category"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/wp/v2/pages": {
      "get": {
        "tags": [
          "Pages"
        ],
        "operationId": "listPages",
        "summary": "List site pages",
        "parameters": [
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/cursor"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "name": "slug",
            "in": "query",
            "description": "Only the page with this URL slug.",
            "schema": {
              "type": "string",
              "example": "about-us"
            }
          },
          {
            "$ref": "#/components/parameters/fields"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of pages.",
            "headers": {
              "X-WP-Total": {
                "$ref": "#/components/headers/Total"
              },
              "X-WP-TotalPages": {
                "$ref": "#/components/headers/TotalPages"
              },
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              },
              "X-Next-Cursor": {
                "$ref": "#/components/headers/NextCursor"
              },
              "Link": {
                "$ref": "#/components/headers/Link"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Page"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "description": "List site pages Pagination: use cursor (X-Next-Cursor / Link rel=\"next\") to walk through all results; page is still supported.",
        "x-pagination": {
          "style": "cursor",
          "cursorParam": "cursor",
          "nextCursorHeader": "X-Next-Cursor",
          "nextLinkRel": "next",
          "limitParam": "per_page"
        },
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/wp/v2/pages/{id}": {
      "get": {
        "tags": [
          "Pages"
        ],
        "operationId": "getPage",
        "summary": "Get one site page",
        "parameters": [
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/fields"
          }
        ],
        "responses": {
          "200": {
            "description": "The page.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page"
                }
              }
            },
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/wp/v2/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "operationId": "searchSite",
        "summary": "Search articles and pages",
        "description": "Keyword search across all published articles and pages. Returns the title, URL and type of each match.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": true,
            "description": "Words to search for.",
            "schema": {
              "type": "string",
              "example": "go-to-market"
            }
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "name": "subtype",
            "in": "query",
            "description": "Limit to articles (`post`) or pages (`page`).",
            "schema": {
              "type": "string",
              "enum": [
                "post",
                "page",
                "any"
              ],
              "default": "any"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Matching articles and pages.",
            "headers": {
              "X-WP-Total": {
                "$ref": "#/components/headers/Total"
              },
              "X-WP-TotalPages": {
                "$ref": "#/components/headers/TotalPages"
              },
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SearchResult"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/aq/v1/a2a": {
      "get": {
        "tags": [
          "Agent"
        ],
        "operationId": "getAgentCard",
        "summary": "The A2A agent card",
        "responses": {
          "200": {
            "description": "Agent card (A2A v0.3).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "headers": {
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "services:read"
        ]
      },
      "post": {
        "tags": [
          "Agent"
        ],
        "operationId": "sendAgentMessage",
        "summary": "Send a message to the Ainovaq A2A agent",
        "description": "JSON-RPC 2.0, method message/send. Read-only. Supports Idempotency-Key for safe retries.",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonRpcRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The agent's answer (JSON-RPC result or error).",
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Idempotency-Key": {
                "$ref": "#/components/headers/IdempotencyKey"
              },
              "Idempotent-Replayed": {
                "$ref": "#/components/headers/IdempotentReplayed"
              },
              "Deprecation": {
                "$ref": "#/components/headers/Deprecation"
              },
              "Sunset": {
                "$ref": "#/components/headers/Sunset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonRpcResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/IdempotencyConflict"
          },
          "422": {
            "$ref": "#/components/responses/IdempotencyKeyReused"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "agent:invoke",
          "services:read",
          "content:read"
        ]
      }
    },
    "/aq/v1/exports": {
      "post": {
        "tags": [
          "Exports"
        ],
        "operationId": "createExport",
        "summary": "Start an export job (async)",
        "description": "Returns 202 Accepted immediately with the job and a Location header. Poll the status URL (respect Retry-After) until status is succeeded, then GET result_url. Supports Idempotency-Key. At most 10 jobs per hour per IP.",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "articles",
                      "pages"
                    ],
                    "default": "articles"
                  },
                  "include_content": {
                    "type": "boolean",
                    "default": true
                  },
                  "category": {
                    "type": "integer",
                    "minimum": 1
                  }
                }
              },
              "example": {
                "type": "articles",
                "include_content": true
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Job accepted.",
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Location": {
                "$ref": "#/components/headers/Location"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfterPoll"
              },
              "Idempotency-Key": {
                "$ref": "#/components/headers/IdempotencyKey"
              },
              "Idempotent-Replayed": {
                "$ref": "#/components/headers/IdempotentReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/IdempotencyConflict"
          },
          "422": {
            "$ref": "#/components/responses/IdempotencyKeyReused"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "exports:create"
        ]
      }
    },
    "/aq/v1/batch": {
      "post": {
        "tags": [
          "Batch"
        ],
        "operationId": "batchRead",
        "summary": "Run several read requests in one call (batch)",
        "description": "Runs up to 20 GET requests, in order, and returns one entry per request with its own HTTP status, headers and body. Allowed paths: /wp/v2/posts, /wp/v2/pages and /wp/v2/categories (optionally with /{id}), /wp/v2/search and /aq/v1/exports/{id}[/result], each with an optional query string. Entries fail independently: a missing article is a 404 entry and a disallowed path is a 400 entry (code batch_path_not_allowed), while the batch itself still returns 200. Each sub-request counts against the rate limit of 120 requests per minute. Supports Idempotency-Key.",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              },
              "example": {
                "requests": [
                  {
                    "id": "latest",
                    "path": "/wp/v2/posts?per_page=3&_fields=id,title,link"
                  },
                  {
                    "id": "mvp",
                    "path": "/wp/v2/search?search=mvp&per_page=5"
                  },
                  {
                    "id": "categories",
                    "path": "/wp/v2/categories"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The batch ran. Check the status of each entry in responses.",
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Idempotency-Key": {
                "$ref": "#/components/headers/IdempotencyKey"
              },
              "Idempotent-Replayed": {
                "$ref": "#/components/headers/IdempotentReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/IdempotencyConflict"
          },
          "422": {
            "$ref": "#/components/responses/IdempotencyKeyReused"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "content:read"
        ]
      }
    },
    "/aq/v1/exports/{id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "getExportJob",
        "summary": "Poll an export job",
        "parameters": [
          {
            "$ref": "#/components/parameters/jobId"
          }
        ],
        "responses": {
          "200": {
            "description": "Job status. While queued or running a Retry-After header says when to poll again; once succeeded, result_url is set.",
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/RetryAfterPoll"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "exports:read"
        ]
      }
    },
    "/aq/v1/exports/{id}/result": {
      "get": {
        "tags": [
          "Exports"
        ],
        "operationId": "getExportResult",
        "summary": "Download a finished export",
        "parameters": [
          {
            "$ref": "#/components/parameters/jobId"
          }
        ],
        "responses": {
          "200": {
            "description": "The export.",
            "headers": {
              "RateLimit": {
                "$ref": "#/components/headers/RateLimit"
              },
              "RateLimit-Policy": {
                "$ref": "#/components/headers/RateLimitPolicy"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/XRateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/XRateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/XRateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "410": {
            "$ref": "#/components/responses/Gone"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "default": {
            "$ref": "#/components/responses/UnexpectedError"
          }
        },
        "deprecated": false,
        "security": [

        ],
        "x-required-scopes": [
          "exports:read"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "id": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "Numeric ID.",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 3670
        }
      },
      "search": {
        "name": "search",
        "in": "query",
        "description": "Keyword search.",
        "schema": {
          "type": "string",
          "example": "mvp"
        }
      },
      "page": {
        "name": "page",
        "in": "query",
        "description": "Page-number pagination (still supported, see the deprecation policy). Prefer cursor for walking through results.",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "default": 1
        }
      },
      "perPage": {
        "name": "per_page",
        "in": "query",
        "description": "Results per page.",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 10
        }
      },
      "order": {
        "name": "order",
        "in": "query",
        "description": "Sort direction.",
        "schema": {
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ],
          "default": "desc"
        }
      },
      "fields": {
        "name": "_fields",
        "in": "query",
        "description": "Comma-separated list of fields to return, e.g. `id,title,link,excerpt`.",
        "schema": {
          "type": "string",
          "example": "id,title,link,excerpt"
        }
      },
      "idempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": false,
        "description": "Unique value (1–255 visible ASCII characters) to make retries safe. A retry with the same key and body within 24 hours returns the stored response with Idempotent-Replayed: true instead of running again. Same key with a different body: 422. While the first request is still running: 409.",
        "schema": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "example": "9f1c2b7e-5d3a-4a8e-b1f0-2c6d8e4a7b13"
        }
      },
      "cursor": {
        "name": "cursor",
        "in": "query",
        "required": false,
        "description": "Cursor-based pagination (recommended). Pass the opaque value from the previous response's X-Next-Cursor header (or follow its Link rel=\"next\"). Stable while new items are published: no skipped or repeated items. Works with orderby=date (asc or desc). When given, page and offset are ignored.",
        "schema": {
          "type": "string",
          "maxLength": 200,
          "example": "eyJkIjoiMjAyNi0wNy0zMCAwOTowMDowMCIsImkiOjM1ODh9"
        }
      },
      "jobId": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "Job ID returned when the job was created.",
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "headers": {
      "Total": {
        "description": "Total number of matching items.",
        "schema": {
          "type": "integer"
        }
      },
      "TotalPages": {
        "description": "Total number of result pages.",
        "schema": {
          "type": "integer"
        }
      },
      "RateLimit": {
        "description": "Current quota (IETF draft): limit, remaining requests and seconds until reset, e.g. \"limit=120, remaining=97, reset=42\".",
        "schema": {
          "type": "string"
        }
      },
      "RateLimitPolicy": {
        "description": "Quota policy (IETF draft): \"120;w=60\" = 120 requests per 60-second window.",
        "schema": {
          "type": "string"
        }
      },
      "XRateLimitLimit": {
        "description": "Requests allowed per minute.",
        "schema": {
          "type": "integer"
        }
      },
      "XRateLimitRemaining": {
        "description": "Requests left in the current minute.",
        "schema": {
          "type": "integer"
        }
      },
      "XRateLimitReset": {
        "description": "Unix time when the quota resets.",
        "schema": {
          "type": "integer"
        }
      },
      "RetryAfter": {
        "description": "Seconds to wait before retrying.",
        "schema": {
          "type": "integer"
        }
      },
      "IdempotencyKey": {
        "description": "Echo of the request Idempotency-Key.",
        "schema": {
          "type": "string"
        }
      },
      "IdempotentReplayed": {
        "description": "\"true\" when this is a stored response replayed for a retried Idempotency-Key.",
        "schema": {
          "type": "string",
          "enum": [
            "true"
          ]
        }
      },
      "Deprecation": {
        "description": "Present only on deprecated endpoints (RFC 9745): \"@<unix time>\" when deprecation took effect.",
        "schema": {
          "type": "string",
          "example": "@1792540800"
        }
      },
      "Sunset": {
        "description": "Present only once a removal date is set (RFC 8594): HTTP date after which the endpoint may stop working.",
        "schema": {
          "type": "string",
          "example": "Sat, 01 May 2027 00:00:00 GMT"
        }
      },
      "NextCursor": {
        "description": "Cursor for the next batch; absent on the last batch. Pass it as ?cursor=.",
        "schema": {
          "type": "string"
        }
      },
      "Link": {
        "description": "RFC 8288 links. rel=\"next\" points to the next batch (with cursor=); page-number prev/next links are also included when page is used.",
        "schema": {
          "type": "string"
        }
      },
      "Location": {
        "description": "Status URL of the new job.",
        "schema": {
          "type": "string",
          "format": "uri"
        }
      },
      "RetryAfterPoll": {
        "description": "Seconds to wait before polling again (sent while the job is queued or running).",
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "Rendered": {
        "type": "object",
        "properties": {
          "rendered": {
            "type": "string",
            "description": "HTML."
          }
        }
      },
      "Post": {
        "type": "object",
        "description": "A blog article.",
        "properties": {
          "id": {
            "type": "integer",
            "example": 3670
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "modified": {
            "type": "string",
            "format": "date-time"
          },
          "slug": {
            "type": "string",
            "example": "startup-mvp-development"
          },
          "link": {
            "type": "string",
            "format": "uri",
            "example": "https://ainovaq.com/blog/startup-mvp-development/"
          },
          "title": {
            "$ref": "#/components/schemas/Rendered"
          },
          "excerpt": {
            "$ref": "#/components/schemas/Rendered"
          },
          "content": {
            "$ref": "#/components/schemas/Rendered"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "featured_media": {
            "type": "integer"
          }
        }
      },
      "Page": {
        "type": "object",
        "description": "A site page.",
        "properties": {
          "id": {
            "type": "integer"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "modified": {
            "type": "string",
            "format": "date-time"
          },
          "slug": {
            "type": "string",
            "example": "about-us"
          },
          "link": {
            "type": "string",
            "format": "uri",
            "example": "https://ainovaq.com/about-us/"
          },
          "title": {
            "$ref": "#/components/schemas/Rendered"
          },
          "excerpt": {
            "$ref": "#/components/schemas/Rendered"
          },
          "content": {
            "$ref": "#/components/schemas/Rendered"
          },
          "parent": {
            "type": "integer"
          }
        }
      },
      "Category": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 29
          },
          "count": {
            "type": "integer",
            "description": "Number of articles."
          },
          "name": {
            "type": "string",
            "example": "B2B Marketing"
          },
          "slug": {
            "type": "string",
            "example": "b2b-marketing"
          },
          "description": {
            "type": "string"
          },
          "link": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "SearchResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "type": {
            "type": "string",
            "example": "post"
          },
          "subtype": {
            "type": "string",
            "enum": [
              "post",
              "page"
            ]
          }
        }
      },
      "Error": {
        "type": "object",
        "description": "Every error response (4xx/5xx) from the API uses this shape, the WordPress REST error format.",
        "required": [
          "code",
          "message",
          "data"
        ],
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ErrorCode"
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation.",
            "example": "Invalid parameter(s): per_page"
          },
          "data": {
            "type": "object",
            "required": [
              "status"
            ],
            "additionalProperties": true,
            "properties": {
              "status": {
                "type": "integer",
                "description": "HTTP status code, repeated in the body.",
                "example": 400
              },
              "params": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "description": "For rest_invalid_param / rest_missing_callback_param: what is wrong with each parameter."
              },
              "details": {
                "type": "object",
                "additionalProperties": true,
                "description": "Extra detail for some validation errors."
              },
              "retry_after": {
                "type": "integer",
                "description": "For rate_limited: seconds until the quota resets."
              },
              "api_index": {
                "type": "string",
                "format": "uri"
              },
              "openapi": {
                "type": "string",
                "format": "uri"
              },
              "documentation": {
                "type": "string",
                "format": "uri"
              },
              "see": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "example": {
          "code": "rest_invalid_param",
          "message": "Invalid parameter(s): per_page",
          "data": {
            "status": 400,
            "params": {
              "per_page": "per_page must be between 1 (inclusive) and 100 (inclusive)"
            }
          }
        }
      },
      "JsonRpcRequest": {
        "type": "object",
        "required": [
          "jsonrpc",
          "id",
          "method",
          "params"
        ],
        "properties": {
          "jsonrpc": {
            "type": "string",
            "enum": [
              "2.0"
            ]
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "method": {
            "type": "string",
            "enum": [
              "message/send"
            ]
          },
          "params": {
            "type": "object",
            "required": [
              "message"
            ],
            "properties": {
              "message": {
                "type": "object",
                "required": [
                  "role",
                  "parts",
                  "messageId"
                ],
                "properties": {
                  "role": {
                    "type": "string",
                    "enum": [
                      "user"
                    ]
                  },
                  "messageId": {
                    "type": "string"
                  },
                  "parts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "kind",
                        "text"
                      ],
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "text"
                          ]
                        },
                        "text": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "example": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "message/send",
          "params": {
            "message": {
              "role": "user",
              "messageId": "1",
              "parts": [
                {
                  "kind": "text",
                  "text": "What services does Ainovaq offer?"
                }
              ]
            }
          }
        }
      },
      "JsonRpcResponse": {
        "type": "object",
        "properties": {
          "jsonrpc": {
            "type": "string"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "nullable": true
          },
          "result": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "messageId": {
                "type": "string"
              },
              "parts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "error": {
            "$ref": "#/components/schemas/JsonRpcError"
          }
        }
      },
      "BatchRequest": {
        "type": "object",
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "description": "The GET requests to run, in order.",
            "items": {
              "type": "object",
              "required": [
                "path"
              ],
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "maxLength": 64,
                  "description": "Your own label, echoed back on the matching response entry."
                },
                "method": {
                  "type": "string",
                  "enum": [
                    "GET"
                  ],
                  "default": "GET"
                },
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048,
                  "description": "Route under /wp-json with an optional query string, e.g. /wp/v2/posts/123 or /wp/v2/posts?search=mvp&per_page=5.",
                  "example": "/wp/v2/posts?per_page=3"
                }
              }
            }
          }
        }
      },
      "BatchResponse": {
        "type": "object",
        "required": [
          "responses"
        ],
        "properties": {
          "responses": {
            "type": "array",
            "description": "One entry per request, in the same order.",
            "items": {
              "$ref": "#/components/schemas/BatchResponseItem"
            }
          }
        }
      },
      "BatchResponseItem": {
        "type": "object",
        "required": [
          "id",
          "status",
          "headers",
          "body"
        ],
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "description": "The id sent with the request, or null."
          },
          "status": {
            "type": "integer",
            "description": "HTTP status of this sub-request.",
            "example": 200
          },
          "headers": {
            "type": "object",
            "additionalProperties": true,
            "description": "Response headers of this sub-request (X-WP-Total, X-Next-Cursor, Link …)."
          },
          "body": {
            "description": "The sub-request's JSON body: the same as calling the path directly. For an error status (4xx/5xx) it follows the Error schema.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Error"
              },
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {}
              }
            ]
          }
        }
      },
      "JsonRpcError": {
        "type": "object",
        "description": "JSON-RPC 2.0 error object, returned in the body (HTTP 200) when an A2A request fails. Sent instead of result.",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "$ref": "#/components/schemas/JsonRpcErrorCode"
          },
          "message": {
            "type": "string",
            "description": "Human-readable explanation.",
            "example": "Invalid params: params.message.parts is required"
          },
          "data": {
            "description": "Optional extra detail."
          }
        }
      },
      "JsonRpcErrorCode": {
        "type": "integer",
        "description": "JSON-RPC / A2A error code. Known values:\n- `-32700`: Parse error (body is not valid JSON).\n- `-32600`: Invalid Request (not a JSON-RPC 2.0 request).\n- `-32601`: Method not found.\n- `-32602`: Invalid params (for example params.message.parts missing).\n- `-32001`: Task not found.\n- `-32004`: This operation is not supported.\n- `-32007`: Authenticated extended card is not configured.\nClients should treat unknown codes as a failed request.",
        "example": -32602,
        "x-known-values": [
          -32700,
          -32600,
          -32601,
          -32602,
          -32001,
          -32004,
          -32007
        ]
      },
      "ErrorCode": {
        "type": "string",
        "description": "Machine-readable error code. Known values:\n- `rest_no_route`: No endpoint matches the URL and method (404).\n- `rest_invalid_param`: A parameter is invalid (400); see data.params.\n- `rest_missing_callback_param`: A required parameter is missing (400); see data.params.\n- `rest_post_invalid_id`: No article or page with that ID (404).\n- `rest_term_invalid`: No category with that ID (404).\n- `not_found`: No API endpoint at that path under /api (404).\n- `method_not_allowed`: HTTP method not supported (405).\n- `rate_limited`: Too many requests (429); see data.retry_after.\n- `idempotency_key_invalid`: Malformed Idempotency-Key (400).\n- `idempotency_key_in_use`: Same Idempotency-Key still being processed (409).\n- `idempotency_key_reused`: Idempotency-Key reused with a different body (422).\n- `job_not_found`: No export job with that ID, or it expired (404).\n- `job_not_finished`: Export result requested before the job succeeded (409).\n- `job_failed`: The export job failed; start a new one (410).\n- `batch_path_not_allowed`: A batch entry asked for a path a batch cannot call (400, inside the batch response).\nClients should treat unknown codes by their HTTP status.",
        "example": "rest_invalid_param",
        "x-known-values": [
          "rest_no_route",
          "rest_invalid_param",
          "rest_missing_callback_param",
          "rest_post_invalid_id",
          "rest_term_invalid",
          "not_found",
          "method_not_allowed",
          "rate_limited",
          "idempotency_key_invalid",
          "idempotency_key_in_use",
          "idempotency_key_reused",
          "job_not_found",
          "job_not_finished",
          "job_failed",
          "batch_path_not_allowed"
        ]
      },
      "Job": {
        "type": "object",
        "required": [
          "id",
          "type",
          "status",
          "created_at",
          "status_url"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "enum": [
              "articles",
              "pages"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "succeeded",
              "failed"
            ],
            "description": "queued → running → succeeded or failed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "finished_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "item_count": {
            "type": "integer",
            "nullable": true
          },
          "status_url": {
            "type": "string",
            "format": "uri"
          },
          "result_url": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "description": "Set once status is succeeded."
          },
          "error": {
            "type": "object",
            "nullable": true,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      },
      "ExportResult": {
        "type": "object",
        "properties": {
          "export": {
            "type": "string"
          },
          "generated_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "count": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "slug": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "date": {
                  "type": "string",
                  "format": "date-time"
                },
                "modified": {
                  "type": "string",
                  "format": "date-time"
                },
                "summary": {
                  "type": "string"
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "text": {
                  "type": "string",
                  "description": "Full plain text (when include_content is true)."
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid or missing parameter (rest_invalid_param, rest_missing_callback_param).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not found (rest_no_route, rest_post_invalid_id, rest_term_invalid).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Rate limit exceeded (120 requests per minute per IP address).",
        "headers": {
          "RateLimit": {
            "$ref": "#/components/headers/RateLimit"
          },
          "RateLimit-Policy": {
            "$ref": "#/components/headers/RateLimitPolicy"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/XRateLimitLimit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/XRateLimitRemaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/XRateLimitReset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "IdempotencyConflict": {
        "description": "A request with this Idempotency-Key is still being processed.",
        "headers": {
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "IdempotencyKeyReused": {
        "description": "This Idempotency-Key was already used with a different request body.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "UnexpectedError": {
        "description": "Any other error. The body always follows the Error schema; use data.status and code.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Conflict": {
        "description": "The job has not finished yet (job_not_finished).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Gone": {
        "description": "The job failed (job_failed); start a new one.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "security": [

  ]
}
