The Bus Tracker API provides a gateway into near-real-time CTA bus locations and estimated arrival times. You can use the official CTA Bus Tracker service via Web or mobile device.
To use this API, you must agree to the Terms of Service and apply for a key. You'll also need a Bus Tracker account.
How Bus Tracker Works
Each bus has a device that uses the Global Positioning System (GPS) to determine where it is, make announcements as buses approach stops, and report back information about the bus to our servers. It helps us see where buses are and make service and schedules better and it can help bus riders make decisions about when to head out to a bus stop.
Estimated arrival times and this API are provided through a system called "BusTime," a product made by Clever Devices, Inc.
What the API does
The API makes it easy for developers to get specific information from Bus Tracker to incorporate estimated arrivals and location information into innovative apps--mobile, online, or at locations.
How to get an API key
First, you'll need to get a Bus Tracker account. If you don't have one, sign up and activate your account first. Then:
- Sign into Bus Tracker.
- Choose on My Account in the upper right-hand corner of the page.
- Follow the link under "Developer API" to apply.
We'll need to review your application. Once we assign you a key, you'll get an e-mail containing the key right away. Meanwhile, feel free to review the documentation.
Bus Tracker API Documentation (.pdf)
Q: How fresh is the data?
A: About as fresh as it can get—Bus Tracker data is updated about every minute, both on our site and in the API.
Q: How does Bus Tracker determine when a bus is likely to arrive at a stop?
A: The BusTime system makes estimations based on scheduled travel times and vehicle locations. Extraneous circumstances can have an impact on travel times, which is why Bus Tracker can only provide an estimate.
Q: What happens when a bus goes "off-route?"
A: When buses go off of their regular route, Bus Tracker will stop showing them because it isn't able to automatically tell which stops a bus will be able to cover before it continues its regular route.
Q: Why might a bus not appear in Bus Tracker?
A: In addition to situations where a bus goes off-route, a bus might also not appear in Bus Tracker due to a hardware or communications problem that causes a bus to not report in to the BusTime system. Generally, these circumstances are rare, but you should be aware of them if providing Bus Tracker data to your users.
Q: Is there a limit to how much data I can transfer?
A: By default, the Bus Tracker API has a transaction limit of 10,000 transactions/day. This helps us manage bandwidth better (it's not free)—but you can ask us to increase that limit, which we'll evaluate on a case-by-case basis.
Q: How far in the future does Bus Tracker estimate arrivals?
A: Estimated arrival times are only available up to about a half-hour in the future. If you are interested in making estimations beyond that, try using scheduled service data via our GTFS feed.
Q: Why is some seemingly-similar information in the Bus Tracker API slightly different than what's in the GTFS feed?
A: These feeds are essentially pathways into data we use for pre-existing systems. For example, routes are "patterns" in the Bus Tracker API and routes are "shapes" in the GTFS feed. While these are very similar each is processed a little differently to serve the needs of each system.
...See the documentation for even more FAQs!
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 Customer Alerts API and our Scheduled Service/GTFS data.