GET

/trains/{train_no}/live-status

Get API key

Returns the current station, the next station, delay, and live times for a journey date.

Request

curl "https://api.traindekho.live/v1/trains/12951/live-status?date=2026-09-24" \
  -H "X-API-Key: YOUR_API_KEY"
NameInRequiredDescription
train_nopathyesTrain number, four or five digits.
datequeryyesJourney date, YYYY-MM-DD.

Responses

200

Current station, next station, and the schedule with live times.

{
  "train_no": "12951",
  "journey_date": "2026-09-23",
  "running_status": "departed",
  "data_source": "ntes",
  "delay_minutes": 12,
  "current_station": {
    "code": "BRC",
    "name": "Vadodara Junction"
  },
  "next_station": {
    "code": "NDLS",
    "name": "New Delhi",
    "distance_km": 992
  },
  "stops": [
    {
      "sequence": 1,
      "station": {
        "code": "MMCT",
        "name": "Mumbai Central"
      },
      "scheduled_arrival_time": null,
      "scheduled_departure_time": "17:05",
      "actual_arrival_time": null,
      "actual_departure_time": "17:17",
      "day_offset": 0,
      "distance_km": 0,
      "halt_minutes": 0,
      "lat": 18.969,
      "lon": 72.819,
      "intermediate_stations": [],
      "delay_minutes": 12,
      "coach_position": "ENG-SLR-S1"
    }
  ]
}
400

A path or query value is missing or has the wrong format.

{
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Request is invalid."
  }
}
401

The API key is missing, unknown, expired, or revoked.

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication is required."
  }
}
403

The credential is valid and does not include this API.

{
  "error": {
    "code": "FORBIDDEN",
    "message": "You do not have access to this API."
  }
}
404

The train or station does not exist.

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Not found."
  }
}
429

The caller exceeded a rate limit or a quota. Wait for Retry-After seconds before retrying.

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "API request limit exceeded"
  }
}
500

The request could not be completed.

{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "The request could not be completed."
  }
}
502

Live status could not be loaded.

{
  "error": {
    "code": "UPSTREAM_UNAVAILABLE",
    "message": "Live status is temporarily unavailable."
  }
}