Phoenix STS API documentation
The published content of phoenixsts.ie (pages, news and articles, categories and search) is available to software and AI agents through a read-only REST API and a Model Context Protocol (MCP) server. Neither needs sign-up or an API key.
Machine-readable files
- /openapi.json: OpenAPI 3.1 specification
- /llms.txt: when to use Phoenix STS and where its sections are
- /.well-known/oauth-protected-resource: RFC 9728 metadata with the supported scopes for the REST API
- /.well-known/oauth-protected-resource/mcp: the same for the MCP server
- /.well-known/mcp/server-card.json: MCP server card listing the tools and resources
- /.well-known/api-catalog: RFC 9727 API catalog
- /sitemap.xml: every public page
- Any page as Markdown: request it with
Accept: text/markdown, for examplecurl -H "Accept: text/markdown" https://phoenixsts.ie/
Authentication and scopes
Everything described here is anonymous. Send no credentials. The scope the read operations fall under is declared so tools can request least privilege:
content:read: Read published pages, posts, categories and search results. Granted to anonymous callers.
Only published content is returned. Drafts, users, uploads of private material and the admin panel are not part of this API.
REST API
Base URL: https://phoenixsts.ie
GET /api/pages,GET /api/pages/{id}GET /api/posts,GET /api/posts/{id}GET /api/categoriesGET /api/search
Example requests:
# the page with slug "fire-safety"
curl "https://phoenixsts.ie/api/pages?where[slug][equals]=fire-safety&depth=0"
# the five newest articles
curl "https://phoenixsts.ie/api/posts?limit=5&sort=-publishedAt&depth=0"
# search titles for "first aid"
curl "https://phoenixsts.ie/api/search?where[title][like]=first%20aid&limit=10"Lists return docs, totalDocs, page, totalPages, hasNextPage and hasPrevPage. Full parameter and response schemas are in the OpenAPI document.
MCP server
Endpoint: https://phoenixsts.ie/mcp (Streamable HTTP, stateless, JSON responses). Tools: search_site, get_page, list_posts, get_post. Resources: phoenix://about and phoenix://llms-txt.
# Claude Code
claude mcp add --transport http phoenix-sts https://phoenixsts.ie/mcp
# raw request
curl -X POST https://phoenixsts.ie/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Rate limits
Anonymous REST requests are limited to 120 per 60 seconds per IP address, and MCP requests to 60 per 60 seconds. Every response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (seconds) and RateLimit-Policy. When the budget is spent the API answers 429 with a Retry-After header; wait that many seconds.
Versioning and deprecation
The current API version is 1 (supported: 1). Every REST and MCP response carries an API-Version header. To pin the contract, send the same header on requests (API-Version: 1); an unsupported value returns 400 listing the supported versions. It is declared as a header parameter on every operation in the OpenAPI document.
- Breaking changes (removed or renamed fields, changed meaning) ship as a new version that runs alongside the old one. Adding fields, operations or optional parameters is not a breaking change and does not bump the version.
- A version is announced as deprecated at least 6 months before it stops working. From then on every response carries
Deprecation(RFC 9745) andSunset(RFC 8594) headers and aLinkheader withrel="deprecation"pointing here. - No version is currently deprecated.
Client libraries and sandbox
There is no separate SDK to install: generate a typed client in your language from the OpenAPI document, for example:
npx @openapitools/openapi-generator-cli generate \
-i https://phoenixsts.ie/openapi.json -g typescript-fetch -o ./phoenix-sts-clientThere is no sandbox because none is needed: every operation is read-only and anonymous, so you can call the production API freely within the rate limits. No account, trial or API key is required.
Questions
Email info@phoenixsts.ie or use the contact page.
