ToolzerHub Docs

Check seat availability and fare (v1)

Check seats for one train, class and quota from the travel date over the next few days, with the confirmation chance and the fare breakdown. A class the train lacks is rejected with a 422.

1 credit / requestBilled only on success
GET
/v1/indianrail/train/availability

Authorization

ApiKeyAuth
x-api-key<token>

In: header

Query Parameters

train*string

A 5-digit train number such as 12951, the number followed by the name, or a train page link from RailYatri, ConfirmTkt, erail or ixigo. Find a number by name with Search trains.

Lengthlength <= 300
from_station*string

The boarding station code, such as MMCT, or a name with the code in brackets. Find codes by name with Search stations.

Lengthlength <= 120
to_station*string

The destination station code, such as NDLS, or a name with the code in brackets. Find codes by name with Search stations.

Lengthlength <= 120
date?string

Travel date from the boarding station, today or later. Defaults to today (India time). Dates past the booking window are rejected with the day bookings open.

Match^(\d{4}-\d{2}-\d{2}|\d{2}[-/]\d{2}[-/]\d{4})$
travel_class*string

Travel class: 1A, 2A, 3A, 3E, SL, CC, EC, EA, 2S, FC, or a name such as sleeper, 3ac or chair car. The classes a train has are in its schedule and in Trains between stations.

Length2 <= length <= 40
quota?string

Booking quota: GN general (default), TQ tatkal, PT premium tatkal, LD ladies or SS senior citizen and lower berth. Names such as tatkal work too.

Lengthlength <= 40
curl -X GET "https://example.com/v1/indianrail/train/availability?train=12951&from_station=MMCT&to_station=NDLS&travel_class=3A" \  -H "x-api-key: YOUR_API_KEY"
{  "data": {    "train_number": "12951",    "train_name": "NDLS TEJAS RAJ",    "from": {      "code": "NDLS",      "name": "New Delhi"    },    "to": {      "code": "NDLS",      "name": "New Delhi"    },    "date": "2026-11-12",    "class": "3A",    "quota": "GN",    "distance_km": 1384,    "checked_at": "2026-11-05T17:28:43+05:30",    "fare": {      "total": 3165,      "base": 1820,      "reservation_charge": 40,      "superfast_charge": 45,      "catering_charge": 400,      "tatkal_charge": 0,      "gst": 132,      "dynamic_fare": 728,      "other_charges": 0,      "concession": 0    },    "days": [      {        "status": "RLWL60/WL42",        "status_text": "WL 42",        "confirm_chance_percent": 71,        "prediction": "Probable",        "date": "2026-11-12",        "can_book": true      }    ]  },  "details": {    "reason": "string",    "message": "string"  }}