Rail data and API

Put live rail data in your product

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.

One response shape, every market

The same request answered for two markets: same fields, same station codes, same delay semantics.

api.trainsonmap.comone schema

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.

Markets

Data is read from each operator's or authority's own feed and normalised into one schema. Refresh cadence differs by market: ask for the markets you need and we'll state it in writing.

MarketTime zone
AustraliaAustralia/Brisbane
AustriaEurope/Vienna
CzechiaEurope/Prague
DenmarkEurope/Copenhagen
New ZealandPacific/Auckland
FinlandEurope/Helsinki
FranceEurope/Paris
GermanyEurope/Berlin
IrelandEurope/Dublin
NetherlandsEurope/Amsterdam
NorwayEurope/Oslo
SpainEurope/Madrid
SwedenEurope/Stockholm
BelgiumEurope/Brussels
SwitzerlandEurope/Zurich
LuxembourgEurope/Luxembourg
MalaysiaAsia/Kuala_Lumpur
CanadaAmerica/Toronto
United StatesAmerica/New_York

Sources, attribution and the full licence text for every market are on the About page.

What you can build

Ticket sellers and OTAs

Live boards and delays inside the booking flow, without a per-country integration.

Mobility apps and platforms

The same feed in your own map or planner, in every market we cover.

Rail-tech vendors

The normalisation layer between operator feeds and the product you sell.

First and last mile

A late train as a signal for pickup promises: taxis, airports, stations.

Claims and compensation

Whether a service was late at a station on a date — see the history note below.

Analysts and research

A bulk extract for a study. A file and a licence, no integration.

Punctuality history

Beta

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.

Start with 30 days of the live API

One key, every market, no commitment — plus the sample extract to check against cases you already know.

Questions

What does it cost?

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.

How do we get access?

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.

Which markets are covered?

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.

Can we resell it?

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.

Is the history complete?

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.

© 2026 Junat kartallaRiippumaton palvelu, ei sidoksissa rautatieyhtiöihin.
Junat kartallaJunat kartalla