Train Data Sources & APIs
Complete transparency about every data source powering TrainTrackings — 50+ official railway APIs, GTFS feeds, and timetables across 150 countries.
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.
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?
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.
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-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
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 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 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 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.
| Country | Source Name | Official URL | Data Type | Update Frequency |
|---|---|---|---|---|
| Digitraffic | rata.digitraffic.fi | GTFS-RT + REST JSON | Real-time (30s) | |
| iRail | api.irail.be | JSON REST | Real-time (30s) | |
| Irish Rail API | api.irishrail.ie | XML REST | Real-time (30s) | |
| VBB Berlin REST API | v6.vbb.transport.rest | JSON REST | Real-time (30s) | |
| OpenTransportData SBB | transport.opendata.ch | JSON REST | Real-time (30s) | |
| Amtraker API | api-v3.amtraker.com | JSON REST (GPS) | Real-time (5min) | |
| Entur GraphQL API | developer.entur.org | GraphQL | Real-time (30s) | |
| JR East ODPT API | www.odpt.org | JSON-LD REST | Real-time (30s) | |
| LTA DataMall | datamall.lta.gov.sg | JSON REST | Real-time (60s) | |
| Transport for NSW | opendata.transport.nsw.gov.au | GTFS-RT | Real-time (30s) | |
| Metlink Open Data | opendata.metlink.org.nz | GTFS-RT | Real-time (30s) | |
| data.gov.my GTFS-RT (KTMB + Prasarana) | developer.data.gov.my/realtime… | GTFS-RT (Vehicle Position) | Real-time (30s) |
View live train tracker for countries with Tier 1 data.
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.
| Country | Source Name | Official URL | Data Type | Update Frequency |
|---|---|---|---|---|
| NS via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| OBB via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| SJ via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| SNCF via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| CD via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| MAV via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| PKP via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| DSB via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Trenitalia via DB proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Renfe via DB proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| NTES Indian Railways | enquiry.indianrail.gov.in | Schedule JSON | Daily timetable | |
| VIA Rail GTFS | www.viarail.ca | GTFS | Weekly | |
| KORAIL Data Portal | www.data.go.kr | JSON REST | Monthly | |
| National Rail Darwin | www.nationalrail.co.uk/develop… | XML Push Port | Real-time (API key req.) |
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.
| Country | Source Name | Official URL | Data Type | Update Frequency |
|---|---|---|---|---|
| Pakistan Railways | pakrail.gov.pk | Manual (Official PDF) | Per timetable change | |
| Bangladesh Railway | www.railway.gov.bd | Manual (Official PDF) | Per timetable change | |
| KAI Indonesia | www.kai.id | Manual (Official PDF) | Per timetable change | |
| Vietnam Railways | www.vr.com.vn | Manual (Official PDF) | Per timetable change | |
| State Railway Thailand | railway.co.th | Manual (Official PDF) | Per timetable change | |
| Sri Lanka Railways | www.railway.gov.lk | Manual (Official PDF) | Per timetable change | |
| China Railway 12306 | www.12306.cn | Manual (HSR routes) | Per timetable change | |
| Russian Railways RZD | rzd.ru | Manual (Key routes) | Per timetable change | |
| Egyptian Ntl. Railways | enr.gov.eg | Manual (Official PDF) | Per timetable change | |
| ONCF Morocco | www.oncf.ma | Manual (Official PDF) | Per timetable change | |
| NRC Nigeria | nrc.gov.ng | Manual (Official PDF) | Per timetable change | |
| SNTF Algeria | www.sntf.dz | Manual (Official PDF) | Per timetable change | |
| SNCFT Tunisia | www.sncft.com.tn | Manual (Official PDF) | Per timetable change | |
| Kenya Railways | www.krc.co.ke | Manual (Official PDF) | Per timetable change | |
| Transnet / PRASA | www.prasa.com | Manual (Official PDF) | Per timetable change | |
| Ethiopia-Djibouti Rail | edr.com.et | Manual (Official PDF) | Per timetable change | |
| TAZARA Railways | www.tazarasite.com | Manual (Official PDF) | Per timetable change | |
| Ghana Railway Dev. Auth. | www.grda.gov.gh | Manual | Per timetable change | |
| Zambia Railways | www.zambiarailways.com | Manual | Per timetable change | |
| NRZ Zimbabwe | www.nrz.co.zw | Manual | Per timetable change | |
| CFM Mozambique | www.cfm.co.mz | Manual | Per timetable change | |
| CPTM / CBTU | www.cptm.sp.gov.br | GTFS (Partial) | Monthly | |
| Trenes Argentinos | www.argentina.gob.ar/transport… | Manual (Official PDF) | Per timetable change | |
| EFE Chile | www.efe.cl | Manual (Official PDF) | Per timetable change | |
| PeruRail | www.perurail.com | Manual (Official PDF) | Per timetable change | |
| Colombian Railways | www.mintransporte.gov.co | Manual | Per timetable change | |
| Maya Train / FERROMEX | www.trenmaya.gob.mx | Manual (Official PDF) | Per timetable change | |
| FC Cuba | www.ferrocarrilesdecuba.cu… | Manual | Per timetable change | |
| CP Portugal | www.cp.pt | Manual (Official PDF) | Per timetable change | |
| CFR Calatori | www.cfrcalatori.ro | Manual (Official PDF) | Per timetable change | |
| BDZ Bulgaria | www.bdz.bg | Manual (Official PDF) | Per timetable change | |
| ZSSK Slovakia | www.zssk.sk | Manual (Official PDF) | Per timetable change | |
| HZ Croatia | www.hzpp.hr | Manual (Official PDF) | Per timetable change | |
| Hellenic Train | www.hellenictrain.gr | Manual (Official PDF) | Per timetable change | |
| Ukrzaliznytsia | www.uz.gov.ua | Manual (Official PDF) | Per timetable change | |
| Israel Railways | www.rail.co.il | Manual (Official PDF) | Per timetable change | |
| TCDD Turkey | www.tcdd.gov.tr | Manual (Official PDF) | Per timetable change | |
| RAI Iran | www.rai.ir | Manual (Official PDF) | Per timetable change | |
| Kazakhstan Temir Zholy | www.railways.kz | Manual (Official PDF) | Per timetable change | |
| Uzbekiston Temir Yollari | chipta.railway.uz | Manual (Official PDF) | Per timetable change | |
| Azerbaijan Railways ADY | www.ady.az | Manual (Official PDF) | Per timetable change | |
| Georgian Railway | www.railway.ge | Manual (Official PDF) | Per timetable change | |
| Hejaz Jordan Railway | www.hjr.com.jo | Manual | Per timetable change | |
| SAR / Haramain HSR | www.sar.com.sa | Manual (Official PDF) | Per timetable change | |
| PNR Philippines | www.pnr.gov.ph | Manual (Official PDF) | Per timetable change | |
| Myanma Railways | www.railway.gov.mm | Manual | Per timetable change | |
| THSR / TRA Taiwan | www.thsrc.com.tw | Manual (Official PDF) | Per timetable change | |
| Nepal Railways | www.nepalrailways.com | Manual | Per timetable change | |
| Iraqi Republic Railways | www.irr.gov.iq | Manual | Per timetable change | |
| Etihad Rail / RTA Dubai | etihadrail.ae | Manual (Official PDF) | Per timetable change |
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.
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.
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.
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.
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.
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.
| Country | Tier | Source Name | Official URL | Data Type | Update Frequency |
|---|---|---|---|---|---|
| Live GPS | Digitraffic | rata.digitraffic.fi | GTFS-RT + REST JSON | Real-time (30s) | |
| Live GPS | iRail | api.irail.be | JSON REST | Real-time (30s) | |
| Live GPS | Irish Rail API | api.irishrail.ie | XML REST | Real-time (30s) | |
| Live GPS | VBB Berlin REST API | v6.vbb.transport.rest | JSON REST | Real-time (30s) | |
| Live GPS | OpenTransportData SBB | transport.opendata.ch | JSON REST | Real-time (30s) | |
| Live GPS | Amtraker API | api-v3.amtraker.com | JSON REST (GPS) | Real-time (5min) | |
| Live GPS | Entur GraphQL API | developer.entur.org | GraphQL | Real-time (30s) | |
| Live GPS | JR East ODPT API | www.odpt.org | JSON-LD REST | Real-time (30s) | |
| Live GPS | LTA DataMall | datamall.lta.gov.sg | JSON REST | Real-time (60s) | |
| Live GPS | Transport for NSW | opendata.transport.nsw.gov.a… | GTFS-RT | Real-time (30s) | |
| Live GPS | Metlink Open Data | opendata.metlink.org.nz | GTFS-RT | Real-time (30s) | |
| Live GPS | data.gov.my GTFS-RT (KTMB + Prasarana) | developer.data.gov.my/realti… | GTFS-RT (Vehicle Position) | Real-time (30s) | |
| Schedule API | NS via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | OBB via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | SJ via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | SNCF via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | CD via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | MAV via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | PKP via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | DSB via DB REST proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | Trenitalia via DB proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | Renfe via DB proxy | v6.db.transport.rest | JSON REST | Near real-time (1min) | |
| Schedule API | NTES Indian Railways | enquiry.indianrail.gov.in | Schedule JSON | Daily timetable | |
| Schedule API | VIA Rail GTFS | www.viarail.ca | GTFS | Weekly | |
| Schedule API | KORAIL Data Portal | www.data.go.kr | JSON REST | Monthly | |
| Schedule API | National Rail Darwin | www.nationalrail.co.uk/devel… | XML Push Port | Real-time (API key req.) | |
| Static | Pakistan Railways | pakrail.gov.pk | Manual (Official PDF) | Per timetable change | |
| Static | Bangladesh Railway | www.railway.gov.bd | Manual (Official PDF) | Per timetable change | |
| Static | KAI Indonesia | www.kai.id | Manual (Official PDF) | Per timetable change | |
| Static | Vietnam Railways | www.vr.com.vn | Manual (Official PDF) | Per timetable change | |
| Static | State Railway Thailand | railway.co.th | Manual (Official PDF) | Per timetable change | |
| Static | Sri Lanka Railways | www.railway.gov.lk | Manual (Official PDF) | Per timetable change | |
| Static | China Railway 12306 | www.12306.cn | Manual (HSR routes) | Per timetable change | |
| Static | Russian Railways RZD | rzd.ru | Manual (Key routes) | Per timetable change | |
| Static | Egyptian Ntl. Railways | enr.gov.eg | Manual (Official PDF) | Per timetable change | |
| Static | ONCF Morocco | www.oncf.ma | Manual (Official PDF) | Per timetable change | |
| Static | NRC Nigeria | nrc.gov.ng | Manual (Official PDF) | Per timetable change | |
| Static | SNTF Algeria | www.sntf.dz | Manual (Official PDF) | Per timetable change | |
| Static | SNCFT Tunisia | www.sncft.com.tn | Manual (Official PDF) | Per timetable change | |
| Static | Kenya Railways | www.krc.co.ke | Manual (Official PDF) | Per timetable change | |
| Static | Transnet / PRASA | www.prasa.com | Manual (Official PDF) | Per timetable change | |
| Static | Ethiopia-Djibouti Rail | edr.com.et | Manual (Official PDF) | Per timetable change | |
| Static | TAZARA Railways | www.tazarasite.com | Manual (Official PDF) | Per timetable change | |
| Static | Ghana Railway Dev. Auth. | www.grda.gov.gh | Manual | Per timetable change | |
| Static | Zambia Railways | www.zambiarailways.com | Manual | Per timetable change | |
| Static | NRZ Zimbabwe | www.nrz.co.zw | Manual | Per timetable change | |
| Static | CFM Mozambique | www.cfm.co.mz | Manual | Per timetable change | |
| Static | CPTM / CBTU | www.cptm.sp.gov.br | GTFS (Partial) | Monthly | |
| Static | Trenes Argentinos | www.argentina.gob.ar/transpo… | Manual (Official PDF) | Per timetable change | |
| Static | EFE Chile | www.efe.cl | Manual (Official PDF) | Per timetable change | |
| Static | PeruRail | www.perurail.com | Manual (Official PDF) | Per timetable change | |
| Static | Colombian Railways | www.mintransporte.gov.co | Manual | Per timetable change | |
| Static | Maya Train / FERROMEX | www.trenmaya.gob.mx | Manual (Official PDF) | Per timetable change | |
| Static | FC Cuba | www.ferrocarrilesdecuba.cu… | Manual | Per timetable change | |
| Static | CP Portugal | www.cp.pt | Manual (Official PDF) | Per timetable change | |
| Static | CFR Calatori | www.cfrcalatori.ro | Manual (Official PDF) | Per timetable change | |
| Static | BDZ Bulgaria | www.bdz.bg | Manual (Official PDF) | Per timetable change | |
| Static | ZSSK Slovakia | www.zssk.sk | Manual (Official PDF) | Per timetable change | |
| Static | HZ Croatia | www.hzpp.hr | Manual (Official PDF) | Per timetable change | |
| Static | Hellenic Train | www.hellenictrain.gr | Manual (Official PDF) | Per timetable change | |
| Static | Ukrzaliznytsia | www.uz.gov.ua | Manual (Official PDF) | Per timetable change | |
| Static | Israel Railways | www.rail.co.il | Manual (Official PDF) | Per timetable change | |
| Static | TCDD Turkey | www.tcdd.gov.tr | Manual (Official PDF) | Per timetable change | |
| Static | RAI Iran | www.rai.ir | Manual (Official PDF) | Per timetable change | |
| Static | Kazakhstan Temir Zholy | www.railways.kz | Manual (Official PDF) | Per timetable change | |
| Static | Uzbekiston Temir Yollari | chipta.railway.uz | Manual (Official PDF) | Per timetable change | |
| Static | Azerbaijan Railways ADY | www.ady.az | Manual (Official PDF) | Per timetable change | |
| Static | Georgian Railway | www.railway.ge | Manual (Official PDF) | Per timetable change | |
| Static | Hejaz Jordan Railway | www.hjr.com.jo | Manual | Per timetable change | |
| Static | SAR / Haramain HSR | www.sar.com.sa | Manual (Official PDF) | Per timetable change | |
| Static | PNR Philippines | www.pnr.gov.ph | Manual (Official PDF) | Per timetable change | |
| Static | Myanma Railways | www.railway.gov.mm | Manual | Per timetable change | |
| Static | THSR / TRA Taiwan | www.thsrc.com.tw | Manual (Official PDF) | Per timetable change | |
| Static | Nepal Railways | www.nepalrailways.com | Manual | Per timetable change | |
| Static | Iraqi Republic Railways | www.irr.gov.iq | Manual | Per timetable change | |
| Static | Etihad Rail / RTA Dubai | etihadrail.ae | Manual (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.
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?
How often is the train data updated?
Is the train data accurate?
Can I use TrainTrackings data for my own project?
Why doesn't my country have live train tracking?
What is GTFS-Realtime?
How do you handle data errors?
Which country has the best open rail data?
More questions? Full FAQ · Contact us · About TrainTrackings