{"openapi":"3.1.0","info":{"title":"Agxntsix Content API","version":"1.0.0","summary":"Read-only access to Agxntsix's published articles, guides, glossary, reports, and comparisons.","description":"Public, unauthenticated, read-only API over the content published on agxntsix.ai.\n\n**Rate limits:** 60 requests per 60 seconds per client IP (counted per server instance), reported in the IETF `RateLimit` and `RateLimit-Policy` headers (plus `X-RateLimit-*`). A 429 carries `Retry-After`.\n\n**Errors:** every 4xx/5xx is an RFC 9457 `application/problem+json` object with a stable `code`.\n\n**Versioning:** the major version is in the path (`/api/v1`) and echoed in the `API-Version` header. Additive changes (new fields, endpoints, or enum values) ship within v1. Breaking changes ship as `/api/v2`; v1 then returns `Deprecation` (RFC 9745) and `Sunset` (RFC 8594) headers for at least 180 days before removal.","contact":{"name":"Agxntsix","email":"contact@agxntsix.ai","url":"https://agxntsix.ai/contact"},"termsOfService":"https://agxntsix.ai/terms"},"externalDocs":{"description":"Developer guide","url":"https://agxntsix.ai/developers"},"servers":[{"url":"https://agxntsix.ai/api/v1","description":"Production"}],"security":[],"tags":[{"name":"Content","description":"Published content"},{"name":"Status","description":"Service health"}],"paths":{"/health":{"get":{"operationId":"getHealth","summary":"Check API health","description":"Returns ok when the API is serving requests. Useful as a connectivity check before other calls.","tags":["Status"],"responses":{"200":{"description":"The API is up.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"429":{"description":"Rate limit exceeded. Wait for Retry-After seconds.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Seconds until the window resets.","schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/content":{"get":{"operationId":"listContent","summary":"List published content","description":"Lists published content newest first, optionally filtered by kind. Returns summaries only; fetch one item with getContent for its full Markdown body.","tags":["Content"],"parameters":[{"name":"kind","in":"query","required":false,"description":"Only return this kind of content.","schema":{"$ref":"#/components/schemas/ContentKind"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of items to return.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"offset","in":"query","required":false,"description":"Number of items to skip, for pagination.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"responses":{"200":{"description":"A page of content summaries.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentList"}}}},"400":{"description":"A query parameter is invalid.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded. Wait for Retry-After seconds.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Seconds until the window resets.","schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/content/{kind}/{slug}":{"get":{"operationId":"getContent","summary":"Get one content item","description":"Returns a single published item, including its full Markdown body, keywords, and citations.","tags":["Content"],"parameters":[{"name":"kind","in":"path","required":true,"description":"The content kind.","schema":{"$ref":"#/components/schemas/ContentKind"}},{"name":"slug","in":"path","required":true,"description":"The item's slug, as returned by listContent.","schema":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,255}$"}}],"responses":{"200":{"description":"The content item.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentItem"}}}},"400":{"description":"The kind or slug is malformed.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No published item has this kind and slug.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded. Wait for Retry-After seconds.","headers":{"API-Version":{"$ref":"#/components/headers/API-Version"},"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"description":"Seconds until the window resets.","schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error.","headers":{"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"headers":{"API-Version":{"description":"Major API version that served the request.","schema":{"type":"string","const":"1"}},"RateLimit":{"description":"Remaining quota and seconds until reset, e.g. `\"default\";r=59;t=42`.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy: `\"default\";q=60;w=60`.","schema":{"type":"string"}}},"schemas":{"ContentKind":{"type":"string","enum":["blog","comparison","glossary","guide","report"],"description":"Type of published content."},"Health":{"type":"object","required":["status","version"],"properties":{"status":{"type":"string","const":"ok"},"version":{"type":"string","const":"1"}}},"ContentSummary":{"type":"object","required":["kind","slug","title","excerpt","category","url","publishedAt","updatedAt","readTimeMinutes"],"properties":{"kind":{"$ref":"#/components/schemas/ContentKind"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":["string","null"]},"category":{"type":["string","null"]},"url":{"type":"string","format":"uri","description":"Canonical page URL."},"publishedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"readTimeMinutes":{"type":["integer","null"]}}},"ContentDetail":{"allOf":[{"$ref":"#/components/schemas/ContentSummary"},{"type":"object","required":["contentMarkdown","keywords","citations","coverImageUrl"],"properties":{"contentMarkdown":{"type":"string","description":"Full article body in Markdown."},"keywords":{"type":"array","items":{"type":"string"}},"citations":{"type":"array","items":{"type":"string","format":"uri"}},"coverImageUrl":{"type":["string","null"]}}}]},"ContentList":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ContentSummary"}},"meta":{"type":"object","required":["limit","offset","count"],"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer","description":"Number of items in this page."}}}}},"ContentItem":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ContentDetail"}}},"Problem":{"type":"object","description":"RFC 9457 problem details.","required":["type","title","status","code","detail"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string","enum":["invalid_request","not_found","rate_limited","internal_error"],"description":"Stable machine-readable error code."},"detail":{"type":"string"},"instance":{"type":"string"}}}}}}