{"openapi":"3.1.0","info":{"title":"Aerix Content API","summary":"Markdown representations of every public page on aerix.uk.","description":"Aerix publishes every public page in two representations at the same URL:\nHTML for browsers and Markdown for agents and language models.\n\nRequest the Markdown representation either by appending `.md` to any\npublic path, or by sending `Accept: text/markdown`. Responses carry\n`Vary: Accept, Accept-Encoding`, so shared caches key the two\nrepresentations separately.\n\nA full index of available pages is published at /llms.txt.","version":"1.0.0","contact":{"name":"Aerix","email":"team@aerix.uk","url":"https://www.aerix.uk/contact"},"license":{"name":"Content is © Aerix Limited; reuse with attribution.","url":"https://www.aerix.uk/terms-of-service"}},"servers":[{"url":"https://www.aerix.uk","description":"Production"}],"externalDocs":{"description":"Aerix developer and agent resources","url":"https://www.aerix.uk/developers"},"paths":{"/{path}":{"get":{"operationId":"getPageAsMarkdown","summary":"Fetch any public page as Markdown","description":"Returns the Markdown representation of a public page. Send `Accept: text/markdown`, or append `.md` to the path. Authenticated areas (/admin, /custadmin, /projects, /neutralhost, /bizadmin) and /api are not negotiable and always return HTML or JSON.","parameters":[{"name":"path","in":"path","required":true,"description":"Public page path without a leading slash, e.g. \"about\", \"coverage\", \"services/rural-networks\", \"blog/<slug>\". Use \"index\" for the homepage.","schema":{"type":"string"},"examples":{"homepage":{"value":"index"},"about":{"value":"about"},"service":{"value":"services/rural-networks"}}},{"name":"Accept","in":"header","required":false,"description":"Send text/markdown for the Markdown representation. Anything else returns HTML.","schema":{"type":"string","examples":["text/markdown"]}}],"responses":{"200":{"description":"The page as Markdown.","headers":{"Vary":{"description":"Always \"Accept, Accept-Encoding\" — the representation depends on Accept.","schema":{"type":"string"}},"Cache-Control":{"description":"public, max-age=3600, s-maxage=86400","schema":{"type":"string"}}},"content":{"text/markdown":{"schema":{"type":"string"},"example":"# Aerix — Private 5G Networks for the UK\n\n> ...\n"}}},"404":{"description":"No Markdown representation exists for this path.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Index of the site for language models","description":"An llms.txt index listing every public page and its Markdown URL.","responses":{"200":{"description":"The llms.txt index.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemap","summary":"XML sitemap of all indexable pages","responses":{"200":{"description":"urlset sitemap.","content":{"application/xml":{"schema":{"type":"string"}}}}}}}}}