Ticket sellers and OTAs
Live boards and delays inside the booking flow, without a per-country integration.
Train positions, delays in minutes, departure boards and disruptions from every market we cover — in one schema.
The map stays free for travellers. This is the data layer underneath it.
The same request answered for two markets: same fields, same station codes, same delay semantics.
GET /api/station/HKI?country=finland
{
"station": { "shortCode": "HKI", "name": "Helsinki asema" },
"stationTrains": [
{
"name": "IC 967",
"time": "2026-10-10T12:03:00.000Z",
"lateMins": 8,
"platform": "11",
"isCancelled": false
}
]
}GET /api/station/2cc3da7ee08d?country=germany
{
"station": { "shortCode": "2cc3da7ee08d", "name": "Köln Hbf" },
"stationTrains": [
{
"name": "ICE 512",
"time": "2026-10-10T12:06:00.000Z",
"lateMins": 6,
"platform": "7",
"isCancelled": false
}
]
}Example responses. The values move with the operator's feed.
Live data is read from each operator's own feed: imported on a schedule where the feed is a realtime one, and live on request where it is not.
| Market | Live data | Time zone |
|---|---|---|
| Australia | Every 3 minutes | Australia/Brisbane |
| Czechia | Every 3 minutes | Europe/Prague |
| New Zealand | Every 3 minutes | Pacific/Auckland |
| Finland | Live | Europe/Helsinki |
| France | Every 3 minutes | Europe/Paris |
| Germany | Every 5 minutes | Europe/Berlin |
| Ireland | Live | Europe/Dublin |
| Netherlands | Live | Europe/Amsterdam |
| Norway | Live | Europe/Oslo |
| Spain | Every 3 minutes | Europe/Madrid |
| Sweden | Live | Europe/Stockholm |
| Belgium | Live | Europe/Brussels |
Sources, attribution and the full licence text for every market are on the About page.
Live boards and delays inside the booking flow, without a per-country integration.
The same feed in your own map or planner, in every market we cover.
The normalisation layer between operator feeds and the product you sell.
A late train as a signal for pickup promises: taxis, airports, stations.
Whether a service was late at a station on a date — see the history note below.
A bulk extract for a study. A file and a licence, no integration.
Per service and service day: when a train reached each stop and how late it was. It is written from our own captures, so it grows one day per day and its depth differs by market — use it to start a check, not as a replacement for the operator's own record.
One key, every market, no commitment — plus the sample extract to check against cases you already know.
Pricing is quoted in writing against your use case, the markets you need and the volume you expect. The 30-day evaluation key is free.
Send your use case, the markets you need and the volume you expect to touko@trainsonmap.com. You get a scoped key, the sample extract and a written quote.
The markets listed on this page, each read from its operator's or authority's own feed. Sources and licence texts are on the About page.
You license our layer, not the upstream feeds. Every market is public data, and the three markets with share-alike or contractual terms are disclosed per market.
It is written from our own captures, so it grows daily and differs by market, and the operator's own record is fuller. Use it to start a check, and ask us for the depth in the markets you need.