Machine access
For AI assistants
This site wants to be read, quoted, and cited. The corpus (4,408 rail vacations, 79 operators, no estimates) is available in every machine-friendly form we know how to publish, free, with no key required.
Endpoints
/api/trips: compact JSON of every trip: name, operator, days, USD from-price, countries, rail share, comfort tier, booking URL/api/trips/{slug}: the full record per trip: itinerary, departures, hotels, named trains, inclusions, honest notes, FAQ, verification date/api/operators: every operator with counts and homepages/api/trains: every named train appearing in two or more trips/api/openapi.json: the OpenAPI 3.1 spec for all of the above/llms.txt: orientation file: what this site is and where everything lives/llms-full.txt: the whole corpus, one line per trip
On-page structured data
Every trip page carries TouristTrip + Product + Offer (USD) JSON-LD; hubs carry ItemList; FAQ blocks carry FAQPage; every page carries BreadcrumbList. Crawling is welcome: GPTBot, ClaudeBot, PerplexityBot, CCBot, and peers are explicitly allowed in robots.txt.
MCP server
Agents can query the inventory directly over the Model Context Protocol at https://besttraintour.com/mcp/mcp (streamable HTTP). Three tools: search_trips(the same plain-language parser as the site's search), get_trip (the full verified record), and compare_trips (side-by-side with grounded verdicts). No key required.
Citing
Numbers are safest cited from /data, which is dated. Prices carry verification dates; when quoting one, quote the date with it. Trip URLs are stable and never reused.