API Reference

Integrate the Railway API into your application. Authenticate your requests using your secret API keys and fetch real-time railway data instantly.

Language:

Gateway Health

Check if the API server is up and running.

GET/health
const response = await fetch("https://api.irctc.dev/health", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Find Trains (Between Stations)

Standalone Guide

Discover direct running trains between any two station codes with travel duration, distance, and running days.

GET/api/v1/trains/search
Parameters
fromRequired
in: query•type: string

Source station code (e.g. NDLS)

toRequired
in: query•type: string

Destination station code (e.g. GD)

date
in: query•type: string

Journey date in YYYY-MM-DD format

const response = await fetch("https://api.irctc.dev/api/v1/trains/search?from=NDLS&to=GD&date=2026-10-24", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Train by Name

Search for trains using a partial or full name.

GET/api/v1/trains/search/name
Parameters
nameRequired
in: query•type: string

Partial or full train name (min 2 chars, e.g. duronto)

const response = await fetch("https://api.irctc.dev/api/v1/trains/search/name?name=duronto", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Cancelled Trains

Fetch daily fully and partially cancelled trains across Indian Railways with 0ms cache.

GET/api/v1/trains/cancelled
const response = await fetch("https://api.irctc.dev/api/v1/trains/cancelled", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Train by Number

Standalone Guide

Get the full schedule, halts, timings, and route for a specific 5-digit train number.

GET/api/v1/trains/:trainNo
Parameters
trainNoRequired
in: path•type: string

5-digit train number (e.g. 26502)

const response = await fetch("https://api.irctc.dev/api/v1/trains/26502", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Fare Lookup

Standalone Guide

Fetch real-time train ticket fare breakup (Base, Reservation, Superfast, GST, Catering) for all running classes or a specific class.

GET/api/v1/trains/:trainNo/fare
Parameters
trainNoRequired
in: path•type: string

5-digit train number (e.g. 12558)

fromRequired
in: query•type: string

Origin station code (e.g. ANVT)

toRequired
in: query•type: string

Destination station code (e.g. NKE)

class
in: query•type: string

Travel class code (1A, 2A, 3A, 3E, SL, or all). Default: all

quota
in: query•type: string

Quota code (GN for General). Default: GN

const response = await fetch("https://api.irctc.dev/api/v1/trains/12558/fare?from=ANVT&to=NKE&class=all&quota=GN", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Seat Availability

Standalone Guide

Query real-time seat & berth availability across travel classes (1A, 2A, 3A, 3E, CC, SL) and quotas (GN, TQ, PT, LD). Returns an authentic 14-day availability calendar forecast with exact confirmation status.

GET/api/v1/trains/:trainNo/availability
Parameters
trainNoRequired
in: path•type: string

5-digit train number (e.g. 12557)

fromRequired
in: query•type: string

Origin station code (e.g. NKE)

toRequired
in: query•type: string

Destination station code (e.g. ANVT)

dateRequired
in: query•type: string

Journey date in DD-MM-YYYY format (e.g. 17-11-2026)

class
in: query•type: string

Travel class code (1A, 2A, 3A, 3E, CC, EC, SL). Default: 3A

quota
in: query•type: string

Quota code (GN, TQ, PT, LD). Default: GN

const response = await fetch("https://api.irctc.dev/api/v1/trains/12557/availability?from=NKE&to=ANVT&date=17-11-2026&class=3A&quota=GN", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Vacant Seats After Chart Preparation

Standalone Guide

Query real-time vacant berths post-charting (First & Second reservation charts) from online reservation charts. Returns coach composition, total vacant berths, class summary, and berth-by-berth allocations for Current Booking & TTE allotment.

GET/api/v1/trains/:trainNo/chart-vacant
Parameters
trainNoRequired
in: path•type: string

5-digit train number (e.g. 12557)

boardingStationRequired
in: query•type: string

Boarding station code (e.g. GKP)

date
in: query•type: string

Journey date in YYYY-MM-DD or DD-MM-YYYY format (defaults to today)

class
in: query•type: string

Travel class code (1A, 2A, 3A, 3E, SL, or ALL). Default: ALL

const response = await fetch("https://api.irctc.dev/api/v1/trains/12557/chart-vacant?boardingStation=GKP&date=2026-10-24&class=ALL", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Station by Name

Lightning-fast autocomplete search for railway stations by name or exact code.

GET/api/v1/trains/stations
Parameters
qRequired
in: query•type: string

Search query (min 2 characters, e.g. "pur")

const response = await fetch("https://api.irctc.dev/api/v1/trains/stations?q=pur", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Station Timetable

Get a complete list of all trains arriving or departing from a specific station on a given date.

GET/api/v1/trains/stations/:code/timetable/:date
Parameters
codeRequired
in: path•type: string

Station code (e.g. NKE)

dateRequired
in: path•type: string

Date in YYYY-MM-DD (e.g. 2026-10-24)

const response = await fetch("https://api.irctc.dev/api/v1/trains/stations/NKE/timetable/2026-10-24", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Station by Code

Fetch detailed information about a station including its full name, zone, and location.

GET/api/v1/trains/stations/:code
Parameters
codeRequired
in: path•type: string

Station code (e.g. NDLS)

const response = await fetch("https://api.irctc.dev/api/v1/trains/stations/NDLS", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Live Train Running Status

Standalone Guide

Get real-time running status, current station, delay, and upcoming halts.

GET/api/v1/live/:trainNo
Parameters
trainNoRequired
in: path•type: string

5-digit train number (e.g. 12557)

date
in: query•type: string

Journey date in YYYY-MM-DD

const response = await fetch("https://api.irctc.dev/api/v1/live/12557?date=2026-10-24", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Live Station Display Board

Real-time train arrivals and departures board with platform, delay, and coach info.

GET/api/v1/live/station/:stationCode
Parameters
stationCodeRequired
in: path•type: string

Station code (e.g. GKP)

hours
in: query•type: number

Time window: 2, 4, or 8 hours (default: 2)

toStation
in: query•type: string

Optional destination filter station code

const response = await fetch("https://api.irctc.dev/api/v1/live/station/GKP?hours=2", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);

Fetch real-time current PNR status, passenger info, and charting status.

GET/api/v1/pnr/:pnr
Parameters
pnrRequired
in: path•type: string

10-digit PNR number (e.g. 2265248473)

const response = await fetch("https://api.irctc.dev/api/v1/pnr/2265248473", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"accept": "application/json",
},
});
 
const data = await response.json();
console.log(data);