Live Train Status
GET
/v1/trains/{number}/liveLive train tracking
Description
Real-time position, delay, and per-stop status for a train journey. - `date` is optional — omit it and the API auto-detects the most recent journey date based on the train's running days and current IST time. - `currentLocation` includes `segmentProgress` to indicate the completion percentage (0.0 to 1.0) between the previous and next station. - `status` can be `running`, `not-started`, `completed`, or `cancelled`.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
number | path | string | Yes | 5-digit train number |
date | query | string | No | Journey start date (YYYY-MM-DD). Omit to auto-detect. |
haltsOnly | query | true | false | No | Return only halting stops in the route array. Default: `false` Default: false |
geometry | query | true | false | No | Include route geometry (polyline/GeoJSON/coordinates). Default: `false` Default: false |
format | query | polyline | geojson | coordinates | No | Geometry format when `geometry=true`. Default: `polyline` Default: polyline |
includeCoordinates | query | true | false | No | Include latitude and longitude for each station in the route array. Default: `false` Default: false |
Code Examples
CURL
curl -X GET "https://api.railradar.in/v1/trains/12919/live" \ -H "Authorization: Bearer rr_live_YOUR_API_KEY"
Example Response
JSON200 OK
{ "success": true, "data": { "trainNumber": "12919", "trainName": "Malwa SF Express", "startDate": "2026-06-22", "lastUpdatedAt": "2026-06-22T07:14:00+05:30", "status": "running", "delayMinutes": 12, "train": { "number": "12919", "name": "Malwa SF Express", "type": "Superfast Express", "category": "Superfast", "source": { "code": "INDB", "name": "Indore Junction" }, "destination": { "code": "SVDK", "name": "Shri Mata Vaishno Devi Katra" }, "runDays": [ "mon", "tue", "wed", "thu", "fri", "sat", "sun" ], "distance": 1640, "duration": 1720, "avgSpeed": 57.2, "maxSpeed": 110, "totalHalts": 45, "returnTrain": "12920" }, "currentLocation": { "stationCode": "UJN", "sequence": 2, "status": "departed", "isHalt": true, "isDiverted": false, "isActualPosition": true, "segmentProgress": 0.45, "speedKmh": 65.5, "bearingDegrees": 180 }, "previousHalt": { "stationCode": "INDB", "stationName": "Indore Junction", "sequence": 1, "distance": 0 }, "nextHalt": { "stationCode": "UJN", "stationName": "Ujjain Junction", "sequence": 2, "distance": 55 }, "exceptions": [ { "type": "DIVERTED", "message": "Train is diverted between UJN (Ujjain Junction) and MKSM (Maksi)", "diverted": { "from": { "code": "UJN", "name": "Ujjain Junction", "sequence": 2 }, "to": { "code": "MKSM", "name": "Maksi", "sequence": 3 }, "divertedStations": [ { "code": "PLW", "name": "Pingleshwar", "sequence": null }, { "code": "TJP", "name": "Tajpur", "sequence": null } ] }, "partiallyCancelled": null, "rescheduled": null } ], "route": [ { "sequence": 1, "stationCode": "INDB", "stationName": "Indore Junction", "isHalt": true, "lat": 22.72, "lng": 75.86, "scheduledArrival": null, "scheduledDeparture": "2026-06-22T23:55:00+05:30", "actualArrival": null, "actualDeparture": "2026-06-23T00:07:00+05:30", "delayArrival": null, "delayDeparture": 12, "status": "departed", "distance": 0, "speedToNextStationKmph": 55, "platform": "4" }, { "sequence": 2, "stationCode": "UJN", "stationName": "Ujjain Junction", "isHalt": true, "lat": 23.17, "lng": 75.78, "scheduledArrival": "2026-06-23T00:55:00+05:30", "scheduledDeparture": "2026-06-23T01:00:00+05:30", "actualArrival": "2026-06-23T01:07:00+05:30", "actualDeparture": "2026-06-23T01:12:00+05:30", "delayArrival": 12, "delayDeparture": 12, "status": "departed", "distance": 55, "speedToNextStationKmph": 60, "platform": "1" }, { "sequence": 3, "stationCode": "MKSM", "stationName": "Maksi", "isHalt": true, "lat": 23.21, "lng": 76.22, "scheduledArrival": "2026-06-23T02:10:00+05:30", "scheduledDeparture": "2026-06-23T02:12:00+05:30", "actualArrival": null, "actualDeparture": null, "delayArrival": null, "delayDeparture": null, "status": "upcoming", "distance": 96, "speedToNextStationKmph": 62, "platform": "3" } ], "isLive": true }, "meta": { "traceId": "550e8400-e29b-41d4-a716-446655440000", "timestamp": "2026-06-22T12:30:00+05:30", "executionTime": 38, "source": "database" } }
Try it Out
Login to test this endpoint
Sign in to pre-fill your API key and send live requests directly from the browser.
Sign in →Error Codes
| Status | Meaning |
|---|---|
400 | Bad Request — invalid or missing parameter |
401 | Unauthorized — missing or invalid Authorization Bearer token |
404 | Not Found — train/station not found (or no results) |
429 | Too Many Requests — rate limit exceeded |
503 | Service Unavailable — upstream data source temporarily down |
Error Response Examples
JSON Error Envelope404 Not Found
{ "success": false, "error": { "code": "NOT_FOUND", "message": "Resource not found (e.g. Train 12919 not found on journey date 2026-06-22)" }, "meta": { "traceId": "9772f1c9-6ec6-4d9f-b269-a5210f33ec73", "timestamp": "2026-06-22T08:14:00+05:30", "executionTime": 5, "source": "database" } }