What this API does and who it is for
The IRCTC API aggregates real-time data from the Indian Railways ecosystem and exposes it through a clean REST interface. Developers building travel apps, seat-alert bots, logistics dashboards, or any product that needs to reason about train journeys in India will find most of what they need here. The API covers the full lifecycle of a train query: discovering stations and trains, checking schedules and live positions, looking up fares and class availability, and resolving PNR bookings.
One important caveat to state upfront: this is an unofficial, third-party API. The provider explicitly notes no affiliation with Indian Railways or IRCTC. That is common in this space, and the real-time accuracy appears solid given the 100% average success rate across its subscriber base — but it does mean you are dependent on a middleware layer rather than a direct data source. Factor that into your architecture's resilience planning.
Endpoint walkthrough
The API exposes 17 GET endpoints, organized into logical groups. Several capabilities have multiple versioned endpoints (v1, v2, v3), which suggests active development and backward-compatibility maintenance.
Station and train discovery
- SearchStation (
/api/v1/searchStation) — look up stations by name or code. The foundation for any journey-planning flow. - SearchTrain (
/api/v1/searchTrain) — find trains by number or name. - TrainsBetweenStations (
/api/v2/trainBetweenStations,/api/v3/trainBetweenStations) — retrieve all trains running between two stations on a given date. The v3 variant likely returns richer or restructured data; test both if response shape matters to you. - Get Trains By Station (
/api/v3/getTrainsByStation) — list trains that serve a particular station.
Schedule and live tracking
- Get Train Schedule (
/api/v1/getTrainSchedule,/api/v1/getTrainScheduleV2) — full stopping schedule for a train, including arrival/departure times at each station. - Get Train Live Status (
/api/v1/liveTrainStatus) — current running position, delay information, and next expected stations in real time. - Get Live Station (
/api/v3/getLiveStation) — trains currently arriving at or departing from a given station, useful for departure-board–style displays.
PNR status
- CheckPNRStatus (
/api/v2/getPNRStatus), Get PNR Status V3 (/api/v3/getPNRStatus), Get PNR Status Detail (/api/v3/getPNRStatusDetail) — three endpoints covering PNR lookup. The detail variant likely returns passenger-level breakdown in addition to booking status. If you are building a ticket-tracking feature, try V3 Detail first for the most complete payload.
Fares, classes, and availability
- GetFare (
/api/v1/getFare,/api/v2/getFare) — fare lookup for a train between two stations, presumably parameterized by class and quota. - GetTrainClasses (
/api/v1/getTrainClasses) — retrieve which travel classes a train offers. - CheckSeatAvailability (
/api/v1/checkSeatAvailability,/api/v2/checkSeatAvailability) — availability status for a given train, date, class, and quota. Central to any booking-decision workflow.
All endpoints use HTTP GET, which keeps integration simple and makes responses easy to cache at the CDN or application layer where data freshness allows (train schedules change rarely; live status should not be cached).
Latency
The reported average latency is 2,676 ms. That is high by REST API standards, but not surprising for a service that is scraping or proxying a government railway system in real time. For synchronous user-facing requests, you should design around this: show loading states, implement timeouts with graceful fallbacks, and consider server-side caching for stable data like schedules and fares. For live train status and seat availability, real-time calls are necessary, so set user expectations accordingly.
Pricing breakdown
The IRCTC API uses a freemium model. All plans are billed monthly and differ only in the number of API calls (referred to as "Basic" quota).
| Plan | Price / month | Monthly requests |
|---|---|---|
| BASIC | $0 | 10 |
| PRO | $9.99 | 7,000 |
| ULTRA | $29.99 | 30,000 |
| MEGA | $150 | 120,000 |
The free tier is effectively a trial — 10 requests per month is enough to confirm the response shapes and test your parsing code, but not to run even a low-traffic production feature. For a personal project or internal tool making a handful of daily lookups, PRO at $9.99 gives you roughly 230 requests per day, which is workable. A consumer-facing app with moderate traffic will want ULTRA or MEGA. At $150 for 120,000 monthly requests, the MEGA plan works out to roughly $1.25 per thousand calls. The provider marks MEGA as recommended, and for teams running alert bots, travel aggregators, or B2B logistics dashboards it is the realistic entry point for scale.
For very high volumes or custom integrations, the provider mentions customized plans available via Telegram (https://t.me/rapidapisupport).
Practical use cases
- PNR tracking apps — the three PNR endpoints cover status and detail, enough to build a full-featured tracker with passenger-wise status.
- Seat alert bots — poll
checkSeatAvailabilityperiodically and notify users when a waitlisted class opens up. ULTRA or MEGA quotas would be required for any meaningful number of users. - Journey planners — combine
trainBetweenStations,getFare, andcheckSeatAvailabilityto surface end-to-end journey options with pricing and availability in one flow. - Departure boards —
getLiveStationandliveTrainStatustogether support real-time displays for specific stations or corridors. - Logistics and freight — businesses shipping goods via Indian Railways can monitor exact train positions against delivery commitments.
Limitations and things to check before integrating
Unofficial status: Because this is not an official IRCTC product, data access depends on the provider's ability to maintain its data pipeline. Any changes on the Indian Railways side could introduce downtime or response changes without notice. Monitor your error rates and have a fallback UX.
Latency: Nearly 2.7 seconds average is a real constraint. Do not use synchronous calls in critical rendering paths without loading indicators. Server-side prefetching or a background-refresh pattern works better for schedule and fare data.
Quota arithmetic: At 120,000 requests per month (MEGA), you get about 4,000 requests per day. For an app polling seat availability every five minutes for 100 users across three train classes, that is 86,400 calls per day — well over the MEGA cap. Model your expected call volume before choosing a plan.
Versioned endpoints: Multiple versions exist for PNR, seat availability, fare, and trains-between-stations. Review what each version returns before committing to one, since v3 endpoints likely carry breaking changes from v1.
Getting started
Subscribing through the RapidAPI marketplace puts the BASIC plan in place immediately. The BASIC tier's 10-request ceiling is enough to:
- Call
searchStationto confirm station code resolution. - Call
trainBetweenStationsto inspect the response structure for a known route. - Call
getPNRStatuswith a test PNR to validate parsing logic.
Once your data models and error-handling are solid, upgrade to PRO or higher based on your projected call volume. Reach out to the provider on Telegram for custom volume pricing if MEGA is insufficient.