Railway infrastructure,
without the scraping.

Powering modern railway applications with live train tracking, PNR status, seat availability, and station intelligence through one clean developer API.

3M+API Requests
99.9%Uptime
Live Train Data
v3.3.0SDK
journey.ts
import { configure, checkPNRStatus, trackTrain }
from "railkit"

// one-time setup
configure(process.env.RAILKIT_API_KEY)

const pnr = await checkPNRStatus("1234567890")

What it includes

Six methods.
Every use case.

Each method maps to a clear railway data use case. Your team can understand the integration at a glance.

PNR Status
checkPNRStatus()

Current passenger and booking status from a 10-digit PNR number.

Train Info
getTrainInfo()

Route, stops, schedule, and running-day information.

Live Tracking
trackTrain()

Live movement, station timeline, and delay context.

Train Search
searchTrainBetweenStations()

Find trains between two stations with useful timetable data.

Seat Availability
getAvailability()

Availability and fare details by class, quota, and date.

Station Board
liveAtStation()

Arrivals, departures, and trains passing through a station.

Fare Lookup
fareLookup()

Fare, concession, and booking-class breakdown between two stations.

Train History
trainHistory()

Persisted historical journey record by train number and date.

How developers use it

Small surface.
Built for backends.

Works in API routes, background jobs, support tools, or mobile app backends. One key, one import, six methods.

  • Predictable response shape
  • Works with any server-side framework
  • Usage plans and developer dashboard
  • TypeScript types included
journey.ts
import { configure,
         checkPNRStatus, trackTrain }
from "railkit"

// one-time setup
configure(process.env.RAILKIT_API_KEY)

export async function getJourney(pnr: string) {
  const status = await
    checkPNRStatus(pnr)

  const live = await
    trackTrain("12342", "06-12-2025")

  return { status, live }
}
Active Enterprise Users
Teams currently on paid access
Satbeer Singh
satb......com
Rajiv Dubey
luck......com
nishanth udemy
udem......com
Mindcoin Services
mind......com
Abhishek Shukla
abhi......com
wandertrip
wand......com

Ready to build?

Connect your app to Indian Railways.

Create an account, get your key, and start calling railway endpoints from your own backend in minutes.

Get API keyView on GitHub

Questions, answered

Frequently asked
questions.

Everything developers ask before integrating the Indian Railways API — PNR status, live tracking, seat availability and more.

How do I check PNR status with an API?

Sign up for a free RailKit API key, then call the getPNRStatus method (or the REST PNR endpoint) with a 10-digit PNR number. You get back the booking status, coach and berth details, boarding point, and chart status as JSON — ready to use in any Node.js, JavaScript, or TypeScript backend.

How do I track a train live and get its running status?

Use the live train tracking method with a train number to fetch real-time running status: current location, last reported station, delay in minutes, and upcoming stops with expected arrival and departure times. It works for any train on the Indian Railways network.

How do I search for trains between two stations?

Call the train-between-stations method with a source and destination station code (and optional date). RailKit returns every train on that route with departure and arrival times, running days, train type, and available classes — ideal for building journey-planning features.

Is there a free tier and how do I get an API key?

Yes. RailKit has a free tier so you can start building right away. Create an account, generate your API key from the dashboard, and start calling railway endpoints in minutes. Paid plans start at ₹49 when you need higher rate limits — see the pricing page for details.

Does it support seat availability and fare enquiry?

It does. You can check seat and berth availability for a train, class, and date, and run a fare enquiry to get class-wise ticket prices. Both are exposed as simple promise-based methods in the SDK and as REST endpoints.

Does RailKit support Node.js and TypeScript?

RailKit is a promise-based Node.js SDK with first-class TypeScript types built in. Install it with npm install railkit, import the client, and every method is fully typed with autocomplete for requests and responses.