API & Agent Documentation
Machine-readable description: openapi.json · API catalog
OTA News is built to be read by software as well as by people. Everything on this page is public unless it says otherwise.
Read any page as markdown
Send an Accept header and you get markdown instead of HTML:
curl -H "Accept: text/markdown" https://www.ota-news.com
The response comes back as text/markdown with an x-markdown-tokens header giving an approximate token count, so you can budget before you read. This works on the homepage, OTA hubs and profiles, comparisons, the glossary and search results.
Articles also have a permanent markdown URL — append .md:
https://www.ota-news.com/booking-com/example-article.md
Find what exists
/llms.txt— every article, OTA profile, glossary term and page, as one markdown index./sitemap.xml— every indexable URL with change dates./feed— RSS of recent articles./search?q=…— semantic search; combine withAccept: text/markdown.
Discovery documents
| Document | Path |
|---|---|
| API catalog (RFC 9727) | /.well-known/api-catalog |
| OpenAPI 3.1 description | /docs/api/openapi.json |
| MCP server card | /.well-known/mcp/server-card.json |
| Published agent skills | /.well-known/agent-skills/index.json |
| Agent registration guide | /auth.md |
| OAuth protected resource | /.well-known/oauth-protected-resource |
| OAuth authorization server | /.well-known/oauth-authorization-server |
Every HTML response also carries Link headers pointing at these, so an agent can find them without fetching this page.
MCP server
Editorial automation runs over the Model Context Protocol rather than REST.
| Endpoint | https://www.ota-news.com/mcp |
| Transport | Streamable HTTP |
| Server name | ota-news |
| Authorization | OAuth 2.1, authorization code + PKCE, human approval required |
Read tools cover OTAs, categories, articles, glossary terms and PR links; write tools create and update them. Publishing an article is outward-facing — it generates a summary and embedding, computes related articles and posts to X — so create drafts and let a person publish.
Dynamic client registration is open at POST /oauth/register. The full walkthrough lives in auth.md.
Agent skills
Two skills describe how to work with this site, indexed at /.well-known/agent-skills/index.json with SHA-256 digests:
ota-news-research— reading and researching the archive.ota-news-mcp— editing over MCP.
In-browser tools
Every page registers WebMCP tools on navigator.modelContext, so a browsing agent can search articles, list OTAs and fetch an article's markdown without leaving the page it is on.
Authenticated ingestion
POST /api/articles and POST /api/images accept a static bearer token issued by HolidayHero B.V. These exist for our own pipelines; for third-party agents the MCP server is the supported route. Both are described in the OpenAPI document.
Rate limits and reuse
Unauthenticated traffic is limited to roughly 60 requests per minute per IP; exceeding it returns 429 with a Retry-After header. Send a descriptive User-Agent. Pages are cached for an hour, so re-fetching the same URL immediately gains you nothing.
robots.txt carries our content signals: ai-train=no, search=yes, ai-input=yes. You may index this content and cite it when answering a question, provided you link back. You may not train generative models on it.
Contact
Questions about programmatic access: [email protected].