Skip to main content
New: Live tracking now available for Egypt, Bulgaria & Malaysia

Train Data Sources & APIs

Complete transparency about every data source powering TrainTrackings — 50+ official railway APIs, GTFS feeds, and timetables across 150 countries.

50+ Data Sources150+ CountriesUpdated Daily

Our Data Transparency Promise

TrainTrackings was built on a single founding principle: every piece of train information we show you comes from an official, verifiable source. We never estimate departure times, never interpolate timetables from third-party aggregators without checking the upstream source, and never present data we cannot trace back to a named railway operator or government transport agency.

The railway information ecosystem is unfortunately littered with sites that copy timetables from each other, propagating errors indefinitely and offering travellers no way to know how old or reliable their information is. We do things differently. Each data source on this page links directly to the official operator website or API endpoint. When a timetable changes, we update from the primary source — not from a cached copy of someone else's data.

All data sourced by TrainTrackings originates from official government transport portals, licensed railway operator APIs, or open GTFS feeds published under Creative Commons, ODbL, or equivalent open licences. We do not scrape booking engines, travel agencies, or comparison sites. We do not ingest data from unofficial third-party timetable databases. The provenance chain from raw data to your screen is unbroken and auditable — which is why this page exists.

When users identify errors — a wrong platform number, an outdated departure time, a missing train service — we treat each report as a quality signal. Confirmed errors are corrected within 5 business days. For Tier 1 and Tier 2 data sources where the fix depends on the upstream API, we contact the relevant data provider and flag the discrepancy in our incident log. You can report an error via our contact page or by emailing errors@traintrackings.com directly.

Official Sources Only

Every data point traces back to a government transport portal or licensed operator API. No aggregators, no scraped booking engines.

Regular Verification

Tier 3 timetables are cross-checked against operator websites monthly. Tier 1 and 2 feeds are monitored continuously for anomalies.

Error Reporting

Community error reports are reviewed within 5 business days. Every confirmed correction is tracked in our internal quality log.

Open Attribution

All sources credited on this page. Operators can request updated attribution or additional context by contacting us.

Learn more: About TrainTrackings · FAQ · Contact

Understanding the Three Data Tiers

Not all train data is equal. The quality, freshness, and depth of information available for any given country depends entirely on what the national railway operator has chosen to publish, and in what format. TrainTrackings classifies all data sources into three tiers to help you understand what you are looking at when you use our service.

Tier 1Real-Time GPS< 60 seconds12 countriesTier 2Near Real-Time1–5 minutes14 countriesTier 3Schedule OnlyPer timetable50 countries
Tier 1

Real-Time GPS

The operator publishes a genuine GTFS-Realtime feed with VehiclePosition data. We receive GPS coordinates, speed, bearing, and a timestamp for every train, updated every 5–60 seconds. In addition to position, the feed typically includes TripUpdate predictions (revised arrival/departure times) and ServiceAlerts (cancellations, platform changes, engineering works). This tier gives you the full picture: where is the train right now, how late is it, and are there any disruptions?

Tier 2

Near Real-Time

The operator's booking or enquiry system exposes a REST API — typically the HaFAS scheduling system used by Deutsche Bahn and many European operators — that returns departure board data including live delay information and platform assignments. Updates are polled every 1–5 minutes. GPS position is usually not available; instead, the system infers train location from the timetable and known delay propagation. This is the most common tier for European railways.

Tier 3

Official Timetable

The operator does not publish a machine-readable live API. We download the official timetable PDF (or HTML schedule page) from the operator's website, parse it manually or with semi-automated tools, normalize station names, validate coordinates, and load the result into our database. Data is refreshed each time the operator issues a new timetable — typically every 3–6 months. No live delay or cancellation data is available for these countries.

See live tracking: Live Map · Service Alerts · Schedules

What is GTFS and GTFS-Realtime?

GTFS — the General Transit Feed Specification — is the open standard that makes it possible for a single platform like TrainTrackings to display schedules for thousands of railway operators worldwide. Understanding it helps you understand how we work.

GTFS Static: The Timetable Standard

GTFS was created in 2006 as a collaboration between TriMet (Portland, Oregon) and Google, initially to power Google Transit directions. It has since been adopted by over 10,000 transit agencies worldwide and is now maintained as an open specification by the transit community at gtfs.org. In its static form, GTFS is simply a ZIP archive containing a set of comma-separated CSV files:

  • stops.txt — Every station or stop: ID, name, latitude, longitude
  • routes.txt — Each route: name, colour, mode (rail, bus, ferry)
  • trips.txt — Each individual trip (a specific train running on a specific date)
  • stop_times.txt — Arrival and departure times for each trip at each stop
  • calendar.txt — Which days of the week each trip runs
  • shapes.txt — Geographic line shapes for mapping the route on a map
GTFS Static ZIP Archivestops.txtroutes.txttrips.txtstop_times.txtcalendar.txtshapes.txt(optional) agency.txt, feed_info.txt, frequencies.txt …

GTFS-Realtime: The Live Data Extension

GTFS-Realtime (GTFS-RT) extends the static specification with live data. Instead of CSV files, GTFS-RT uses Protocol Buffers — Google's binary serialisation format — which is significantly more compact and faster to parse than JSON or XML. A typical GTFS-RT feed for a national railway delivers three distinct feed types:

1. VehiclePosition

The live GPS location of each train vehicle: latitude, longitude, speed in km/h, compass bearing, and the UNIX timestamp of the position reading. Updated every 5–60 seconds depending on the operator.

2. TripUpdate

Revised arrival and departure predictions for every remaining stop on the trip. Includes the delay in seconds relative to the scheduled timetable. This is what powers the delay display on departure boards.

3. ServiceAlert

Text notices for disruptions: cancellations, platform changes, engineering diversions, and safety notices. Alerts include a human-readable description and the affected stops or routes.

Protocol Buffers (protobuf) are more efficient than JSON for this use case because the schema is defined in a .proto file, allowing the binary data to omit field names entirely — only values and field IDs are transmitted. For a railway with 500 active trains, a GTFS-RT VehiclePosition feed might be 15–30 KB as protobuf versus 150–300 KB as equivalent JSON. This matters for polling frequency: you can poll a 20 KB protobuf feed every 5 seconds on a modest server without saturating your bandwidth.

TrainTrackings parses GTFS-RT feeds server-side using the official protobuf schema and converts the results to structured JSON for our internal API. We cache each feed for its stated validity period, then re-fetch. The entire pipeline from feed ingestion to your browser typically adds less than 2 seconds of latency on top of the source feed's own update interval.

See live data: Live Tracker · Jump to data sources table

Tier 1

Real-Time GPS Data Sources

Tier 1 data sources are those where the national railway operator or a government transport agency publishes a genuine GTFS-Realtime feed with real GPS position data, accessible without commercial licensing restrictions. These represent the best-in-class of global rail open data and power the live map on TrainTrackings.

There is an important distinction within Tier 1: some feeds are completely open with no API key required (Finland Digitraffic, Irish Rail, Switzerland OpenTransportData), while others require a free registration to obtain an API key (Singapore LTA DataMall, Japan ODPT). We support both, but we consider truly keyless feeds the gold standard of open data because they allow any developer, researcher, or journalist to independently verify and reproduce our data without any registration barrier. Both categories deliver genuine GPS positions and are classified Tier 1.

Finland

Finland Digitraffic

Finland's open data portal rata.digitraffic.fi publishes GPS positions for every VR train every 5 seconds. No API key required. Considered the gold standard of European rail open data, combining GTFS-RT vehicle positions, detailed timetables, and historical performance statistics under a Creative Commons licence. The Finnish Transport Infrastructure Agency (Väylävirasto) funds the platform as a public service.

Germany

Germany VBB REST API

The Berlin-Brandenburg transport authority (VBB) REST API proxies Deutsche Bahn data for the region, available at v6.vbb.transport.rest. Built as an open-source project by Jannis Redmann, it requires no API key and delivers real-time departure data using the HaFAS backend. It is the most accessible entry point to German rail data and covers regional and long-distance services in the Berlin area.

Ireland

Ireland Irish Rail

Irish Rail's XML API at api.irishrail.ie returns real-time train positions and station departure boards without any authentication. It is one of Europe's rare examples of a fully open, unauthenticated rail API operated directly by the national carrier. The API covers all Intercity, DART, and Commuter services across the Republic of Ireland, updated every 30 seconds.

CountrySource NameOfficial URLData TypeUpdate Frequency
FinlandFinland
Digitrafficrata.digitraffic.fiGTFS-RT + REST JSONReal-time (30s)
BelgiumBelgium
iRailapi.irail.beJSON RESTReal-time (30s)
IrelandIreland
Irish Rail APIapi.irishrail.ieXML RESTReal-time (30s)
GermanyGermany
VBB Berlin REST APIv6.vbb.transport.restJSON RESTReal-time (30s)
SwitzerlandSwitzerland
OpenTransportData SBBtransport.opendata.chJSON RESTReal-time (30s)
United StatesUnited States
Amtraker APIapi-v3.amtraker.comJSON REST (GPS)Real-time (5min)
NorwayNorway
Entur GraphQL APIdeveloper.entur.orgGraphQLReal-time (30s)
JapanJapan
JR East ODPT APIwww.odpt.orgJSON-LD RESTReal-time (30s)
SingaporeSingapore
LTA DataMalldatamall.lta.gov.sgJSON RESTReal-time (60s)
AustraliaAustralia
Transport for NSWopendata.transport.nsw.gov.auGTFS-RTReal-time (30s)
New ZealandNew Zealand
Metlink Open Dataopendata.metlink.org.nzGTFS-RTReal-time (30s)
MalaysiaMalaysia
data.gov.my GTFS-RT (KTMB + Prasarana)developer.data.gov.my/realtimeGTFS-RT (Vehicle Position)Real-time (30s)

View live train tracker for countries with Tier 1 data.

Tier 2

Near Real-Time Data Sources

Tier 2 sources provide rich departure board data including live delay information, but without GPS vehicle positions. The primary backbone of Tier 2 European data is the DB REST proxy architecture, an open-source project that has transformed access to railway data across the continent.

The DB REST Proxy Architecture

Deutsche Bahn and many other major European operators use a commercial backend scheduling system called HaFAS, developed by HaCon (now owned by Siemens). HaFAS powers the timetable and real-time API for Deutsche Bahn (Germany), ÖBB (Austria), SBB (Switzerland), SNCF (France), NS (Netherlands), PKP (Poland), DSB (Denmark), MAV (Hungary), CD (Czech Republic), Trenitalia (Italy), and Renfe (Spain), among others.

The open-source project at v6.db.transport.rest, created by Jannis Redmann, wraps the HaFAS APIs behind a clean, consistent, and openly accessible REST API. This single endpoint effectively gives developers keyless access to departure board data — including live delays and cancellations — for over 10 European railway operators. Each operator's data travels through HaFAS to the proxy to TrainTrackings.

There is an important limitation to understand: HaFAS-derived position data is not true GPS. The system infers train location from timetable data and delay propagation logic. If a train is running 8 minutes late at Station A and 12 minutes late at Station B, HaFAS will estimate its current position proportionally between those two stations. This is useful for departure boards but not suitable for precise live map tracking, which is why these countries remain Tier 2 rather than Tier 1.

CountrySource NameOfficial URLData TypeUpdate Frequency
NetherlandsNetherlands
NS via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
AustriaAustria
OBB via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
SwedenSweden
SJ via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
FranceFrance
SNCF via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
Czech RepublicCzech Republic
CD via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
HungaryHungary
MAV via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
PolandPoland
PKP via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
DenmarkDenmark
DSB via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
ItalyItaly
Trenitalia via DB proxyv6.db.transport.restJSON RESTNear real-time (1min)
SpainSpain
Renfe via DB proxyv6.db.transport.restJSON RESTNear real-time (1min)
IndiaIndia
NTES Indian Railwaysenquiry.indianrail.gov.inSchedule JSONDaily timetable
CanadaCanada
VIA Rail GTFSwww.viarail.caGTFSWeekly
South KoreaSouth Korea
KORAIL Data Portalwww.data.go.krJSON RESTMonthly
United KingdomUnited Kingdom
National Rail Darwinwww.nationalrail.co.uk/developXML Push PortReal-time (API key req.)

Live tracker · Timetables

Tier 3

Official Timetable Data Sources

Tier 3 covers countries where the national railway operator has not yet published a machine-readable API or GTFS feed. All timetable data for these countries is manually curated from official published sources.

The manual curation process follows a strict five-step workflow. First, we download the official timetable document — almost always a PDF, though some operators publish HTML schedule pages — directly from the operator's official government-registered domain. We never use travel agency or ticketing site timetables as a source, even when they appear more up-to-date, because these may contain errors or represent specific ticket classes rather than the full service pattern.

Second, we extract the timetable data and normalise station names. Station naming is one of the most time-consuming aspects of this process: the same station may appear as "Lahore Jn", "Lahore Junction", "Lahore City", or simply "Lahore" in different sources. We cross-reference all station names against OpenStreetMap's railway station database and the operator's own station code registry where available, selecting the most unambiguous canonical name.

Third, we validate each timetable entry for physical plausibility. Journey times are checked against known distances: a train that covers 500 km in 90 minutes is likely a data entry error. Duplicate departure times from the same station on the same day are flagged for review. Missing intermediate stops — sometimes omitted from condensed timetable PDFs — are identified by comparing the journey time against the distance and the operator's stated average speed for that service category.

The majority of countries in this tier are located in South Asia, Southeast Asia, the Middle East, Africa, and Latin America. The absence of open data APIs in these regions is not always a technology problem. Pakistan Railways, for example, operates a reasonably modern ticketing system with online booking — but the backend does not expose a public API. Bangladesh, Nigeria, and most African operators face genuine infrastructure and funding constraints that make open data programs difficult to prioritise. We work with what is available and upgrade countries to higher tiers as their operators publish open data.

How Seasonal Timetable Changes Are Handled

Most Tier 3 operators issue timetables on a seasonal basis — typically twice per year aligned with summer and winter timetable periods — though some operators in South Asia and the Middle East change timetables irregularly. We monitor the "timetable" or "schedules" section of each operator's official website monthly using automated checks for document modification dates. When a new timetable is detected, it is queued for manual re-curation within 5 business days. Holiday timetables (Eid, Christmas, national holidays) are noted in the departure data where the operator publishes them separately.

CountrySource NameOfficial URLData TypeUpdate Frequency
PakistanPakistan
Pakistan Railwayspakrail.gov.pkManual (Official PDF)Per timetable change
BangladeshBangladesh
Bangladesh Railwaywww.railway.gov.bdManual (Official PDF)Per timetable change
IndonesiaIndonesia
KAI Indonesiawww.kai.idManual (Official PDF)Per timetable change
VietnamVietnam
Vietnam Railwayswww.vr.com.vnManual (Official PDF)Per timetable change
ThailandThailand
State Railway Thailandrailway.co.thManual (Official PDF)Per timetable change
Sri LankaSri Lanka
Sri Lanka Railwayswww.railway.gov.lkManual (Official PDF)Per timetable change
ChinaChina
China Railway 12306www.12306.cnManual (HSR routes)Per timetable change
RussiaRussia
Russian Railways RZDrzd.ruManual (Key routes)Per timetable change
EgyptEgypt
Egyptian Ntl. Railwaysenr.gov.egManual (Official PDF)Per timetable change
MoroccoMorocco
ONCF Moroccowww.oncf.maManual (Official PDF)Per timetable change
NigeriaNigeria
NRC Nigerianrc.gov.ngManual (Official PDF)Per timetable change
AlgeriaAlgeria
SNTF Algeriawww.sntf.dzManual (Official PDF)Per timetable change
TunisiaTunisia
SNCFT Tunisiawww.sncft.com.tnManual (Official PDF)Per timetable change
KenyaKenya
Kenya Railwayswww.krc.co.keManual (Official PDF)Per timetable change
South AfricaSouth Africa
Transnet / PRASAwww.prasa.comManual (Official PDF)Per timetable change
EthiopiaEthiopia
Ethiopia-Djibouti Railedr.com.etManual (Official PDF)Per timetable change
TanzaniaTanzania
TAZARA Railwayswww.tazarasite.comManual (Official PDF)Per timetable change
GhanaGhana
Ghana Railway Dev. Auth.www.grda.gov.ghManualPer timetable change
ZambiaZambia
Zambia Railwayswww.zambiarailways.comManualPer timetable change
ZimbabweZimbabwe
NRZ Zimbabwewww.nrz.co.zwManualPer timetable change
MozambiqueMozambique
CFM Mozambiquewww.cfm.co.mzManualPer timetable change
BrazilBrazil
CPTM / CBTUwww.cptm.sp.gov.brGTFS (Partial)Monthly
ArgentinaArgentina
Trenes Argentinoswww.argentina.gob.ar/transportManual (Official PDF)Per timetable change
ChileChile
EFE Chilewww.efe.clManual (Official PDF)Per timetable change
PeruPeru
PeruRailwww.perurail.comManual (Official PDF)Per timetable change
ColombiaColombia
Colombian Railwayswww.mintransporte.gov.coManualPer timetable change
MexicoMexico
Maya Train / FERROMEXwww.trenmaya.gob.mxManual (Official PDF)Per timetable change
CubaCuba
FC Cubawww.ferrocarrilesdecuba.cuManualPer timetable change
PortugalPortugal
CP Portugalwww.cp.ptManual (Official PDF)Per timetable change
RomaniaRomania
CFR Calatoriwww.cfrcalatori.roManual (Official PDF)Per timetable change
BulgariaBulgaria
BDZ Bulgariawww.bdz.bgManual (Official PDF)Per timetable change
SlovakiaSlovakia
ZSSK Slovakiawww.zssk.skManual (Official PDF)Per timetable change
CroatiaCroatia
HZ Croatiawww.hzpp.hrManual (Official PDF)Per timetable change
GreeceGreece
Hellenic Trainwww.hellenictrain.grManual (Official PDF)Per timetable change
UkraineUkraine
Ukrzaliznytsiawww.uz.gov.uaManual (Official PDF)Per timetable change
IsraelIsrael
Israel Railwayswww.rail.co.ilManual (Official PDF)Per timetable change
TurkeyTurkey
TCDD Turkeywww.tcdd.gov.trManual (Official PDF)Per timetable change
IranIran
RAI Iranwww.rai.irManual (Official PDF)Per timetable change
KazakhstanKazakhstan
Kazakhstan Temir Zholywww.railways.kzManual (Official PDF)Per timetable change
UzbekistanUzbekistan
Uzbekiston Temir Yollarichipta.railway.uzManual (Official PDF)Per timetable change
AzerbaijanAzerbaijan
Azerbaijan Railways ADYwww.ady.azManual (Official PDF)Per timetable change
GeorgiaGeorgia
Georgian Railwaywww.railway.geManual (Official PDF)Per timetable change
JordanJordan
Hejaz Jordan Railwaywww.hjr.com.joManualPer timetable change
Saudi ArabiaSaudi Arabia
SAR / Haramain HSRwww.sar.com.saManual (Official PDF)Per timetable change
PhilippinesPhilippines
PNR Philippineswww.pnr.gov.phManual (Official PDF)Per timetable change
MyanmarMyanmar
Myanma Railwayswww.railway.gov.mmManualPer timetable change
TaiwanTaiwan
THSR / TRA Taiwanwww.thsrc.com.twManual (Official PDF)Per timetable change
NepalNepal
Nepal Railwayswww.nepalrailways.comManualPer timetable change
IraqIraq
Iraqi Republic Railwayswww.irr.gov.iqManualPer timetable change
UAEUAE
Etihad Rail / RTA Dubaietihadrail.aeManual (Official PDF)Per timetable change

Browse all train schedules

How We Verify Data Quality

Collecting data from 50+ sources in dozens of formats requires a robust quality pipeline. A timetable that was accurate in December may have changed in March. An API that was reliable for two years may start returning stale data after a backend update. Our five-step quality pipeline is designed to catch these issues before they reach users.

1. Ingest2. Normalize3. Validate4. Community5. Operator
1

Source Data Ingestion

For Tier 1 feeds, our server polls each GTFS-RT endpoint on the operator's specified update interval (5–60 seconds). For Tier 2 REST APIs, we poll every 60–300 seconds based on the API's rate limits. For Tier 3 timetable PDFs, ingestion is triggered manually when a new timetable is detected or reported. All raw data is stored with a precise ingestion timestamp before any processing occurs, enabling full audit trails.

2

Normalisation

Raw data arrives in different formats, time zones, unit systems, and naming conventions. Normalisation converts all times to UTC (with timezone metadata preserved for display), converts speeds to km/h, maps station names to canonical forms from our reference database, and validates coordinates against our known station location registry. Station name mismatches trigger a manual review flag.

3

Automated Validation

Our validation layer applies a series of sanity checks: impossible journey times (e.g., 100 km in 5 minutes), duplicate departure entries at the same station within 2 minutes, GPS coordinates more than 50 km from the expected route, delay values exceeding 24 hours (usually a data error, not a real delay), and service dates outside the published timetable validity window. Records failing validation are quarantined and reviewed before publication.

4

Community Review

Users who notice errors on any TrainTrackings page can report them via our contact form or by emailing errors@traintrackings.com. Each report is triaged within 48 hours. Reports that identify a genuine error in our database trigger immediate correction and a review of related data to catch any similar issues. Repeat reporters with high accuracy rates receive credit in our data quality log.

5

Operator Verification

Once per month, our editorial team manually spot-checks a random sample of Tier 3 timetables against the operator's current website. This catches cases where an operator has updated their PDF timetable without changing the document modification date — a surprisingly common occurrence. For Tier 1 and 2 sources, we monitor the upstream API changelog and operator developer relations pages for announced changes.

Questions about quality? See our FAQ or contact us.

Data Licences & Attribution

Train data is not a single monolithic thing with a single licence. Each data source comes with its own terms, and navigating these correctly is part of operating a responsible rail information platform.

GTFS Open Data (CC-BY / ODbL)

The best Tier 1 sources — Finland Digitraffic, Swiss OpenTransportData, Metlink New Zealand, Transport for NSW — publish their GTFS feeds under Creative Commons Attribution (CC-BY) or the Open Database Licence (ODbL). These are genuinely open licences that permit non-commercial and commercial use, redistribution, and modification, subject to attribution.

We attribute these sources on this page and on relevant country pages. If you are a developer who wants to build your own application using these feeds, we encourage you to go directly to the source rather than depending on our pipeline.

DB REST / VBB (MIT Licence)

The open-source DB REST proxy and VBB REST proxy are published under the MIT Licence, which permits unrestricted use, modification, and distribution. The underlying HaFAS data accessed through these proxies is subject to Deutsche Bahn's and each respective operator's own terms of service, but the proxy software itself is free and open.

Developers can run their own instance of these proxies. The source code is maintained on GitHub and is widely used across the European open transport data community.

National Rail Darwin (UK)

The UK's National Rail Darwin real-time data feed is not fully open. It requires a free registration at the National Rail Open Data portal and is subject to the Darwin Licence, which permits use for public information services but restricts commercial redistribution. TrainTrackings accesses Darwin data via the registered API and displays it under these terms. UK train data is consequently classified Tier 2 despite having near real-time capability.

Tier 3 Government Timetable Data

Official timetables published on government railway operator websites (Pakistan Railways, Bangladesh Railway, Egyptian National Railways, etc.) constitute public domain government information in most jurisdictions. We treat this data as public information and display it for travellers' benefit, with a clear link back to the source operator's official website. We do not claim ownership of or add restrictions to this data.

What TrainTrackings Does NOT Do

  • We do not scrape booking engines, ticketing systems, or travel agencies without explicit permission
  • We do not resell or redistribute raw data feeds in a form that competes with the original operator
  • We do not combine multiple sources in a way that obfuscates the original provenance
  • We do not present timetable data as our own original work — it belongs to the operators

See our Privacy Policy and About page for more on how we operate.

Reporting Data Errors

Our users are our most effective quality control mechanism. If you travel regularly and notice that a departure time is wrong, a station name is misspelled, a train number is incorrect, or an entire service is missing, please let us know. Every confirmed error report improves the experience for thousands of other travellers.

To report an error, email errors@traintrackings.com with:

  • The URL of the page where you found the error
  • The train number or service name (if applicable)
  • A brief description of what is wrong and what the correct information should be
  • A link to the official source showing the correct information (optional but very helpful)

We aim to verify and correct all confirmed errors within 5 business days. For Tier 1 and Tier 2 countries, errors in the upstream API are flagged to the relevant operator. We will always reply to confirm receipt of your report.

Common error types we receive

  • Wrong station name or alternative spelling
  • Incorrect departure or arrival time
  • Missing train service (not listed on our pages)
  • Wrong class information (sleeper, AC, seat)
  • Outdated timetable after seasonal change

You can also use our contact form or check the FAQ for common questions.

Complete Data Source Directory

The complete directory of all 76 train data sources currently used by TrainTrackings, sorted by tier and then alphabetically. Each row includes the operator name, their official website, the data format used, and how often the data is updated. Click any URL to visit the official source directly. This table is updated whenever we add, remove, or change a data source — typically multiple times per month as operators publish new APIs or we onboard new countries.

CountryTierSource NameOfficial URLData TypeUpdate Frequency
FinlandFinland
Live GPSDigitrafficrata.digitraffic.fiGTFS-RT + REST JSONReal-time (30s)
BelgiumBelgium
Live GPSiRailapi.irail.beJSON RESTReal-time (30s)
IrelandIreland
Live GPSIrish Rail APIapi.irishrail.ieXML RESTReal-time (30s)
GermanyGermany
Live GPSVBB Berlin REST APIv6.vbb.transport.restJSON RESTReal-time (30s)
SwitzerlandSwitzerland
Live GPSOpenTransportData SBBtransport.opendata.chJSON RESTReal-time (30s)
United StatesUnited States
Live GPSAmtraker APIapi-v3.amtraker.comJSON REST (GPS)Real-time (5min)
NorwayNorway
Live GPSEntur GraphQL APIdeveloper.entur.orgGraphQLReal-time (30s)
JapanJapan
Live GPSJR East ODPT APIwww.odpt.orgJSON-LD RESTReal-time (30s)
SingaporeSingapore
Live GPSLTA DataMalldatamall.lta.gov.sgJSON RESTReal-time (60s)
AustraliaAustralia
Live GPSTransport for NSWopendata.transport.nsw.gov.aGTFS-RTReal-time (30s)
New ZealandNew Zealand
Live GPSMetlink Open Dataopendata.metlink.org.nzGTFS-RTReal-time (30s)
MalaysiaMalaysia
Live GPSdata.gov.my GTFS-RT (KTMB + Prasarana)developer.data.gov.my/realtiGTFS-RT (Vehicle Position)Real-time (30s)
NetherlandsNetherlands
Schedule APINS via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
AustriaAustria
Schedule APIOBB via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
SwedenSweden
Schedule APISJ via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
FranceFrance
Schedule APISNCF via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
Czech RepublicCzech Republic
Schedule APICD via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
HungaryHungary
Schedule APIMAV via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
PolandPoland
Schedule APIPKP via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
DenmarkDenmark
Schedule APIDSB via DB REST proxyv6.db.transport.restJSON RESTNear real-time (1min)
ItalyItaly
Schedule APITrenitalia via DB proxyv6.db.transport.restJSON RESTNear real-time (1min)
SpainSpain
Schedule APIRenfe via DB proxyv6.db.transport.restJSON RESTNear real-time (1min)
IndiaIndia
Schedule APINTES Indian Railwaysenquiry.indianrail.gov.inSchedule JSONDaily timetable
CanadaCanada
Schedule APIVIA Rail GTFSwww.viarail.caGTFSWeekly
South KoreaSouth Korea
Schedule APIKORAIL Data Portalwww.data.go.krJSON RESTMonthly
United KingdomUnited Kingdom
Schedule APINational Rail Darwinwww.nationalrail.co.uk/develXML Push PortReal-time (API key req.)
PakistanPakistan
StaticPakistan Railwayspakrail.gov.pkManual (Official PDF)Per timetable change
BangladeshBangladesh
StaticBangladesh Railwaywww.railway.gov.bdManual (Official PDF)Per timetable change
IndonesiaIndonesia
StaticKAI Indonesiawww.kai.idManual (Official PDF)Per timetable change
VietnamVietnam
StaticVietnam Railwayswww.vr.com.vnManual (Official PDF)Per timetable change
ThailandThailand
StaticState Railway Thailandrailway.co.thManual (Official PDF)Per timetable change
Sri LankaSri Lanka
StaticSri Lanka Railwayswww.railway.gov.lkManual (Official PDF)Per timetable change
ChinaChina
StaticChina Railway 12306www.12306.cnManual (HSR routes)Per timetable change
RussiaRussia
StaticRussian Railways RZDrzd.ruManual (Key routes)Per timetable change
EgyptEgypt
StaticEgyptian Ntl. Railwaysenr.gov.egManual (Official PDF)Per timetable change
MoroccoMorocco
StaticONCF Moroccowww.oncf.maManual (Official PDF)Per timetable change
NigeriaNigeria
StaticNRC Nigerianrc.gov.ngManual (Official PDF)Per timetable change
AlgeriaAlgeria
StaticSNTF Algeriawww.sntf.dzManual (Official PDF)Per timetable change
TunisiaTunisia
StaticSNCFT Tunisiawww.sncft.com.tnManual (Official PDF)Per timetable change
KenyaKenya
StaticKenya Railwayswww.krc.co.keManual (Official PDF)Per timetable change
South AfricaSouth Africa
StaticTransnet / PRASAwww.prasa.comManual (Official PDF)Per timetable change
EthiopiaEthiopia
StaticEthiopia-Djibouti Railedr.com.etManual (Official PDF)Per timetable change
TanzaniaTanzania
StaticTAZARA Railwayswww.tazarasite.comManual (Official PDF)Per timetable change
GhanaGhana
StaticGhana Railway Dev. Auth.www.grda.gov.ghManualPer timetable change
ZambiaZambia
StaticZambia Railwayswww.zambiarailways.comManualPer timetable change
ZimbabweZimbabwe
StaticNRZ Zimbabwewww.nrz.co.zwManualPer timetable change
MozambiqueMozambique
StaticCFM Mozambiquewww.cfm.co.mzManualPer timetable change
BrazilBrazil
StaticCPTM / CBTUwww.cptm.sp.gov.brGTFS (Partial)Monthly
ArgentinaArgentina
StaticTrenes Argentinoswww.argentina.gob.ar/transpoManual (Official PDF)Per timetable change
ChileChile
StaticEFE Chilewww.efe.clManual (Official PDF)Per timetable change
PeruPeru
StaticPeruRailwww.perurail.comManual (Official PDF)Per timetable change
ColombiaColombia
StaticColombian Railwayswww.mintransporte.gov.coManualPer timetable change
MexicoMexico
StaticMaya Train / FERROMEXwww.trenmaya.gob.mxManual (Official PDF)Per timetable change
CubaCuba
StaticFC Cubawww.ferrocarrilesdecuba.cuManualPer timetable change
PortugalPortugal
StaticCP Portugalwww.cp.ptManual (Official PDF)Per timetable change
RomaniaRomania
StaticCFR Calatoriwww.cfrcalatori.roManual (Official PDF)Per timetable change
BulgariaBulgaria
StaticBDZ Bulgariawww.bdz.bgManual (Official PDF)Per timetable change
SlovakiaSlovakia
StaticZSSK Slovakiawww.zssk.skManual (Official PDF)Per timetable change
CroatiaCroatia
StaticHZ Croatiawww.hzpp.hrManual (Official PDF)Per timetable change
GreeceGreece
StaticHellenic Trainwww.hellenictrain.grManual (Official PDF)Per timetable change
UkraineUkraine
StaticUkrzaliznytsiawww.uz.gov.uaManual (Official PDF)Per timetable change
IsraelIsrael
StaticIsrael Railwayswww.rail.co.ilManual (Official PDF)Per timetable change
TurkeyTurkey
StaticTCDD Turkeywww.tcdd.gov.trManual (Official PDF)Per timetable change
IranIran
StaticRAI Iranwww.rai.irManual (Official PDF)Per timetable change
KazakhstanKazakhstan
StaticKazakhstan Temir Zholywww.railways.kzManual (Official PDF)Per timetable change
UzbekistanUzbekistan
StaticUzbekiston Temir Yollarichipta.railway.uzManual (Official PDF)Per timetable change
AzerbaijanAzerbaijan
StaticAzerbaijan Railways ADYwww.ady.azManual (Official PDF)Per timetable change
GeorgiaGeorgia
StaticGeorgian Railwaywww.railway.geManual (Official PDF)Per timetable change
JordanJordan
StaticHejaz Jordan Railwaywww.hjr.com.joManualPer timetable change
Saudi ArabiaSaudi Arabia
StaticSAR / Haramain HSRwww.sar.com.saManual (Official PDF)Per timetable change
PhilippinesPhilippines
StaticPNR Philippineswww.pnr.gov.phManual (Official PDF)Per timetable change
MyanmarMyanmar
StaticMyanma Railwayswww.railway.gov.mmManualPer timetable change
TaiwanTaiwan
StaticTHSR / TRA Taiwanwww.thsrc.com.twManual (Official PDF)Per timetable change
NepalNepal
StaticNepal Railwayswww.nepalrailways.comManualPer timetable change
IraqIraq
StaticIraqi Republic Railwayswww.irr.gov.iqManualPer timetable change
UAEUAE
StaticEtihad Rail / RTA Dubaietihadrail.aeManual (Official PDF)Per timetable change

Missing your country? Contact us — we add new countries regularly. If you work for a railway operator and want to provide official data, reach out at data@traintrackings.com.

Data Coverage Roadmap

TrainTrackings is a living platform. We are continuously expanding coverage, upgrading existing data sources to higher tiers as operators publish open data, and building partnerships with national transport agencies. Here is what we are working on through 2026 and beyond.

Countries Being Added in 2026

Iraq (Expanded)

Iraqi Republic Railways currently has limited service data. We are working on expanding coverage to include the Baghdad–Basra intercity line with verified station-by-station timetables.

Jordan (Expanded)

The Hejaz Jordan Railway operates limited heritage and freight services. We are adding Aqaba Railway data and investigating the Jordan Valley Railway tourist services.

Nepal (Expanded)

Nepal Railways currently operates limited narrow-gauge services in the Terai region. New infrastructure investments and an expansion of the Janakpur line are creating more timetable data to track.

Myanmar (Expanded)

Myanma Railways operates an extensive network that has historically been difficult to source accurate data for. We are expanding our coverage to include the Yangon circular railway and long-distance express services.

Tier Upgrades in Progress

India: Tier 2 → Tier 1

Indian Railways has been developing a GTFS-RT integration for several years. The National Train Enquiry System (NTES) provides schedule and limited real-time data, but a fully open GTFS-Realtime feed with GPS positions has not yet been published publicly. We are monitoring the Indian government's open data portal at data.gov.in for the expected release.

Pakistan: Tier 3 → Tier 2

Pakistan Railways has invested in new ticketing infrastructure in recent years. We have opened discussions with the Pakistan Railways IT department about accessing their booking API for real-time departure board data. A Tier 2 upgrade would allow delay information to be shown on Pakistan schedule pages.

African Union Rail Data Initiative

The African Union's Transport Infrastructure programme is funding digital data standards for African railways. Several member states are developing GTFS feeds for the first time. We are participating in the consultation process and expect to upgrade at least three African countries from Tier 3 to Tier 2 by end of 2026.

Not Yet Covered

Several regions remain outside our current coverage: most of Central Africa (Democratic Republic of Congo, Cameroon, Gabon), many Pacific island nations, and some smaller Caribbean rail operations. We welcome contacts from operators in these regions.

About TrainTrackings · Partner with us

Frequently Asked Questions — Data Sources

Common questions about how TrainTrackings collects, processes, and displays train data. If your question is not answered here, contact us at info@traintrackings.com.

Where does TrainTrackings get its data?
TrainTrackings sources all train data from official government transport portals, railway operator APIs, and verified GTFS (General Transit Feed Specification) feeds. We source from 76 operators across 150+ countries, covering three data tiers: real-time GPS (Tier 1), near real-time departure board APIs (Tier 2), and official timetable PDFs (Tier 3). We never fabricate or estimate data. Every source is listed on this page with a direct link to the operator's official website.
How often is the train data updated?
Update frequency depends on the data tier. Tier 1 (real-time GPS) sources update every 5–60 seconds — Finland Digitraffic publishes every 5 seconds, Irish Rail every 30 seconds, Singapore LTA every 60 seconds. Tier 2 (near real-time) sources are polled every 1–5 minutes via departure board APIs. Tier 3 (official timetable) sources are updated whenever the operator publishes a new timetable, typically every 3–6 months, aligned with seasonal timetable change dates. We also monitor for unscheduled timetable changes and holiday services.
Is the train data accurate?
We aim for the highest possible accuracy by using only official sources. For Tier 1 and Tier 2 countries, accuracy mirrors the source operator's own systems — if the official departure board says a train is 5 minutes late, we show 5 minutes late. For Tier 3 countries using manually entered timetable data, we cross-check against at least two official sources, validate station coordinates against OpenStreetMap, and verify journey times for physical plausibility. We cannot guarantee 100% accuracy — timetables change, APIs have outages, and manual data entry is not error-free. This is why we ask users to report errors and we verify corrections within 5 business days.
Can I use TrainTrackings data for my own project?
The underlying data belongs to the respective railway operators and is subject to their individual licences (CC-BY, ODbL, proprietary, or government public domain). TrainTrackings does not currently offer a public data export API. For open data projects, we strongly recommend going directly to the source APIs listed on this page. Finland Digitraffic, iRail (Belgium), Entur (Norway), DB REST, and VBB REST are all excellent, well-documented, freely accessible starting points for developers who want to build rail applications.
Why doesn't my country have live train tracking?
Live tracking requires the national railway operator to publish a GTFS-Realtime feed or equivalent open API with GPS vehicle position data. Many countries have not yet done this for a variety of reasons: the railway may not yet have GPS transponders on all trains, the data may exist internally but not be published as open data, there may be commercial interests in keeping the data proprietary, or there may simply not be the policy or funding mandate for open data. The open data landscape is improving steadily — countries like Finland and Norway showed what is possible, and others are following. We upgrade countries to higher tiers as operators publish open data.
What is GTFS-Realtime?
GTFS-Realtime (GTFS-RT) is an extension of the General Transit Feed Specification (GTFS) that allows transit agencies to provide real-time updates about their fleet. Unlike the static GTFS ZIP file (which describes schedules), GTFS-RT uses Google's Protocol Buffer binary format and delivers three types of data: VehiclePosition (the current GPS location of each train, updated every few seconds), TripUpdate (revised arrival and departure time predictions), and ServiceAlert (text notices about disruptions, cancellations, and platform changes). GTFS-RT is now the international standard for real-time transit data and is used by thousands of agencies worldwide. See the full explanation in the "What is GTFS and GTFS-Realtime?" section above.
How do you handle data errors?
You can report data errors by emailing errors@traintrackings.com or using our contact form. Please include the URL of the affected page, the train number or service name, and a description of what is wrong. We acknowledge all reports within 48 hours and aim to verify and correct confirmed errors within 5 business days. For Tier 1 and Tier 2 countries, if the error is in the upstream API, we contact the relevant operator and monitor for their fix. For Tier 3 timetable data, we correct the error in our database and document the change in our internal quality log.
Which country has the best open rail data?
Finland is widely regarded as the gold standard for open rail data globally. Finland's Digitraffic platform (rata.digitraffic.fi) publishes GPS positions for every VR train every 5 seconds, with no API key required, under an open Creative Commons Attribution 4.0 licence. The platform also publishes detailed historical performance data, infrastructure data, and timetable information — all openly and freely. Norway (Entur GraphQL API) and Belgium (iRail) are also excellent examples of genuinely open, well-documented, and well-maintained rail data platforms. Switzerland's OpenTransportData.ch is notable for publishing multi-modal data covering train, bus, and ferry in a unified API.

More questions? Full FAQ · Contact us · About TrainTrackings