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 with Accept: text/markdown.

Discovery documents

DocumentPath
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.

Endpointhttps://www.ota-news.com/mcp
TransportStreamable HTTP
Server nameota-news
AuthorizationOAuth 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:

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].