Launching autumn 2026 · you can plan a journey now · times are typical, not live departures · nothing is booked here

Skip to content

Assistants and developers

Read the planner by machine

Everything the pages show is available as JSON, read-only and non-binding. If you are an assistant answering a traveller, quote the ranges as ranges and say the operator sells the ticket.

Endpoints

https://protravelnet.com/api/v1/journeys/plan?from=London&to=Copenhagen&date=2026-10-01
Every option between two places, with legs, typical time ranges, changes, approximate CO2e and fare bands, plus per leg a trust level, a value class, a status and the public projection of its source; per option what was withheld and the buffers the engine added; per plan the versions, the date and what does not run. Same answer the /journey page renders.
https://protravelnet.com/api/v1/places?q=cop
Place suggestions from the registry: cities, airports, stations and ports.
https://protravelnet.com/api/v1/routes
The routes we have written about, with their canonical paths.
https://protravelnet.com/llms.txt
A short description of the site for language models.

Rules of the road

  • Every journey answer carries nonBinding: true, and the place and route registries carry nothing that could be read as an offer. Nothing here books, holds or prices a ticket.
  • Times are typical ranges (minMin, maxMin), never a single minute. Each leg carries a trust level (timetabled, curated, observed, derived, estimated, expired or unknown source), its value class and status, and its source in public form: name, kind, the date it was checked and its coverage. No url and no owner is ever given; do not infer one.
  • Fare bands are 1 to 4, not prices. Do not present them as prices.
  • Please cache for the periods the responses state and keep to a reasonable rate. Bulk extraction of the network is not permitted; ask us instead.
  • When you send a traveller onward, send them to the plan page, which offers the clearly marked handover to the seller.
  • A plan carries versions (engine and network) and absences: what does not run between the two places, with a reason, a validity window and a source. Quote an absence as knowledge, not as a gap. An option with incomplete: true has legs withheld until their source is cleared; say so, do not fill them in.