The CTA Train Tracker SM APIs provide a gateway into near-real-time CTA bus train estimated arrival times. You can use the official CTA Train Tracker service via Web or mobile device.
To use these APIs, you must agree to the Terms of Service and apply for an API key.
How train data gets into our system
Information in the CTA Train Tracker comes from data fed to CTA from its rail infrastructure. This data is then processed by software we use to monitor our rail system, which also generates the predictions for train arrivals based on recent train travel times from one point to another. (The software is a product called QuicTrak, made by QEI, Inc.)
Prediction data are then combined with other data and processed for exceptions, polished to help present information in the most meaningful way possible.
What the API does
The API makes it easy for developers to get specific, machine-readable information from CTA Train Tracker to incorporate estimated arrival/route progress information into innovative apps--mobile, online, or at locations.
A full set of documentation is available on a Web page and in PDF format, including details about API query string parameters and more.
Read Train Tracker Documentation Online (or download PDF)
Apply for a key
You must first get a key to use our API. Use our API Key Application Form to request a key and we'll review your application as soon as possible. You should get a reply pretty quickly.
Apply for a key
Things you should know
This service may not always be available and may be changed (see terms for complete details). Here are some notes about what you can expect from the data:
- Predictions for train arrivals are generated as trains move from one section of track to another and for estimated arrivals up to twenty minutes beyond the train’s current position.
- Predictions may be withheld in circumstances where we expect them to be inaccurate, such as during major work, reroutes or unavoidable service disruptions. Use the Customer Alerts API to determine whether or not an event is affecting service and relay to your end-users when some or all predictions may be affected or unavailable due to an event that affects service.
- When no predictions are available for a station, such as because no train has yet departed a terminal, we offer up to two scheduled departure time in place of a live prediction so long as service is scheduled. Terminal departures are always represented as a scheduled departure, as live information is not presently available until a train leaves.
- When only one prediction is available for a station, we may offer up to one scheduled departure for a train further in the future than the train scheduled in-service.
- Arrival predictions are available for locations where trains pick up passengers (predictions for terminal arrivals and exit-only platforms are not presently available in the data).
- Internal testing has shown train arrival accuracy averages <±1 minute from prediction times. Average actual variance from predictions may vary as traffic conditions change.
- Unscheduled express runs (where a train runs non-stop from one point on a route to another, such as to space out service following an unavoidable delay) are not expressed in CTA Train Tracker at this time.
- The default daily transaction limit for this API is 50,000 transactions. If you need additional transactions, contact firstname.lastname@example.org with your request. Additionally, there is DoS protection installed on our servers which may trigger a temporary “time-out” if a large number of transactions from a single IP address.
If you have any feedback, don't hesitate to write!
Email email@example.com with your comments about our open data services, including this API.
See Further Reading for more information about how you might use this feed, pointers and more! Also, be sure to check out our other information feeds, including the CTA Bus Tracker API, the Customer Alerts API and our Scheduled Service/GTFS data.