Live Train Status

GET/v1/trains/{number}/live

Live 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

NameInTypeRequiredDescription
numberpathstringYes5-digit train number
datequerystringNoJourney start date (YYYY-MM-DD). Omit to auto-detect.
haltsOnlyquerytrue | falseNoReturn only halting stops in the route array. Default: `false` Default: false
geometryquerytrue | falseNoInclude route geometry (polyline/GeoJSON/coordinates). Default: `false` Default: false
formatquerypolyline | geojson | coordinatesNoGeometry format when `geometry=true`. Default: `polyline` Default: polyline
includeCoordinatesquerytrue | falseNoInclude 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

StatusMeaning
400Bad Request — invalid or missing parameter
401Unauthorized — missing or invalid Authorization Bearer token
404Not Found — train/station not found (or no results)
429Too Many Requests — rate limit exceeded
503Service 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"
  }
}