Developer

TrainsTracking API

Real-time train data for 19 countries. No API key required for public endpoints. Free for non-commercial use.

Public & Free 19 Live Countries No Auth for Public Endpoints

Base URL

https://trainstracking.com

Endpoints

GET/api/live/realtime

Fetch live train positions and status for one or all supported countries.

Parameters

NameTypeRequiredDescription
sourcestringNoCountry slug (e.g. germany, ireland, finland). Omit for all countries.
stopstringNoStation stop ID (used for Germany/VBB). Default: berlin-hbf

Example Request

GET /api/live/realtime?source=germany&stop=berlin-hbf

Example Response

{ "trains": [ { "id": "de-123", "trainCode": "ICE 42", "name": "ICE 42 → Munich", "status": "running", "lat": 52.52, "lng": 13.38, "delay": 2, "platform": "7", ... } ], "liveCountries": ["germany","ireland",...], "stats": { "total": 120, "running": 95, "withGPS": 60, "delayed": 18 }, "fetchedAt": "2026-03-23T..." }
GET/api/live/departures

Live departure board for a specific station. Returns next departures with platform, delay, and operator info.

Parameters

NameTypeRequiredDescription
stationstringYesStation code or stop ID (e.g. BHV for Berlin, ASD for Amsterdam)
limitnumberNoMax number of departures. Default: 20

Example Request

GET /api/live/departures?station=BHV&limit=10

Example Response

{ "departures": [ { "line": "ICE 100", "destination": "Munich Hbf", "platform": "4", "scheduledDep": "14:32", "delay": 0, "cancelled": false } ], "station": "Berlin Hbf", "fetchedAt": "2026-03-23T..." }

Supported Countries (Live API)

Rate Limits & Usage Policy

Public endpoints are rate-limited to 60 requests/minute per IP.

Commercial use (integration in third-party products, data resale) requires written permission — email api@trainstracking.com.

Attribution is required: "Data via TrainsTracking (trainstracking.com)".