RailCore Developer API · PNR status

PNR status API: in development

RailCore does not sell a PNR status API yet. It is in development, and there is no launch date. Join the waitlist and we will tell you when it opens.

The waitlist is an email to [email protected]. Meanwhile, the endpoints below are live today.

Not available yet: no plan can call it today

What you can build today

Track the train a passenger is booked on, check seats and the chances of confirmation, and see whether the chart is out.

  • Live train statusGET /v1/trains/{train_number}/live

    Where a train is right now, how late it is, and its times at every station on the route.

    1 request · All plans

  • Seat availabilityGET /v1/availability/seats

    Check availability afresh for one train and class.

    1 request · All plans

  • Availability calendarGET /v1/availability/calendar

    Inspect availability across upcoming dates.

    1 request · All plans

  • Chart statusGET /v1/charts/status

    Check whether chart one or chart two is prepared.

    1 request · Scale and Enterprise

  • Live station boardGET /v1/stations/{station_code}/live

    Arrivals and departures in a rolling live window.

    1 request · All plans

Live train status, today

The running status of a train, as a PNR app shows it beside the booking. The samples work the date out when they run.

GET /v1/trains/{train_number}/live

cURL
RUN_DATE=$(TZ=Asia/Kolkata date +%F)

curl -sS -X GET \
  -H "X-RailCore-Key: $RAILCORE_KEY" \
  "https://ir.railcore.tech/v1/trains/12723/live?date=$RUN_DATE"
Python
import datetime
import os
import requests

run_date = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=5, minutes=30))).date().isoformat()

response = requests.request(
    "GET",
    f"https://ir.railcore.tech/v1/trains/12723/live?date={run_date}",
    headers={"X-RailCore-Key": os.environ["RAILCORE_KEY"]},
    timeout=20,
)
print(response.status_code, response.json())
Response (shortened)
{
  "success": true,
  "data": {
    "train_number": "12723",
    "train_name": "Telangana Express",
    "journey_date": "2026-11-11",
    "status": "RUNNING",
    "status_text": "Running 23 minutes late",
    "current_station_code": "MKDI",
    "current_station_name": "MAKUDI",
    "latitude": 19.551,
    "longitude": 79.476,
    "delay_minutes": 23,
    "eta_destination_at": "2026-11-12T08:07:00+05:30",
    "next_stop": {
      "sequence": 65,
      "station_code": "BPQ",
      "station_name": "BALHARSHAH",
      "eta": "2026-11-11T12:01:00+05:30",
      "actual_departure": null,
      "delay_arrival_minutes": 6,
      "delay_departure_minutes": 6,
      "platform_number": "4"
    },
    "stations": [
      {
        "sequence": 1,
        "station_code": "HYB",
        "station_name": "HYDERABAD DECCAN",
        "eta": null,
        "actual_departure": "2026-11-11T06:43:14+05:30",
        "delay_arrival_minutes": null,
        "delay_departure_minutes": 43,
        "platform_number": "5"
      }
    ],
    "freshness": {
      "state": "fresh",
      "age_seconds": 13,
      "railcore_cache": "bypassed"
    },
    "confidence": "high"
  },
  "meta": {
    "api_version": "v1",
    "request_id": "req_01J5Z7Y8N2K4M6P8R0T2V4X6Z8"
  }
}

Set RAILCORE_KEY to your key first. Every field, parameter and error is in the Live train status reference.

What it costs

  • Each request counts as 1 requestOn every plan, Free included. The response headers say what each request counted as.
  • Free: 2,000 requests a month20 requests a minute and 300 a day. No card, no phone number.
  • Failed requests are freeOnly successful 2xx responses are counted.
  • Paid plans from ₹699 a monthStarter: 40,000 requests a month, 60 a minute · no daily cap. Pay in INR, or once in USD from outside India.

Questions

Does RailCore have a PNR status API?

Not yet. It is in development, and no plan can call it today. Join the waitlist to hear when it opens.

When will the PNR status API launch?

We have not set a date.

Which plans will include PNR status?

The pricing page lists PNR status with Starter, Growth, Scale and Enterprise. Until the endpoint opens, no key can call it, whatever the plan.

What can I build with RailCore today?

Live train status, seat availability and availability calendar, on every plan. Chart status, which says whether the reservation chart is prepared, is on Scale and Enterprise.

Can I check a PNR on RailCore today?

Yes, by hand: the PNR status tool on railcore.tech is free to use. It is a consumer tool, not part of the developer API.

More from the RailCore API

RailCore is an independent API and is not affiliated with IRCTC or Indian Railways.