Overview
The General Transit Feed Specification—or GTFS—is an open format for packaging scheduled service data. GTFS data is produced by hundreds of transit agencies (including us) around the world to deliver content for inclusion in maps and directions-giving services, including Google Maps.
Note: GTFS was once renamed from "Google Transit Feed Specification."
Learn more about the General Transit Feed Specification on Google Code.
A GTFS feed is typically presented as a series of text files with comma-separated values that conform to the specification. Each file is essentially a table in the relational database that is the whole package.
On this page...
Documentation
The General Transit Feed Specification is documented on a Google Code site.
Tables in our feed
We currently include the following tables in the CTA GTFS Feed (links point to more detailed information on Google Code):
- agency.txt - basic agency information
- stops.txt - list of stop locations for bus and train, also includes parent station info for trains
- routes.txt - route list with unique identifiers
- trips.txt - has information about each trip taken by a CTA vehicle
- stop_times.txt - scheduled arrival/departure times for each stop on each trip
- calendar.txt - defines which service IDs operate on which days
- calendar_dates.txt - has exceptions to calendar (such as a holiday when a Sunday schedule is operated)
- shapes.txt - defines how to draw a route line on a map
- frequencies.txt - defines headways when trips aren't specifically scheduled, but sent as-needed (such as service that follows a major event)
- transfers.txt - has additional information to guide trip planners into identifying two stops as a transfer point and how much extra time to give people to transfer between services
Quick Q&A
Q: How often is the GTFS data updated?
A: Generally, once every week or two, but sometimes more frequently. We distribute a GTFS package for trip planning tools as it's needed, once the schedule is formed. While we generally only make service and schedule changes in batches a few times per year, the feed can be updated for long-term reroutes (such as the Jackson Bridge construction work), as holiday schedules approach or intermediate planned changes to service are about to be implemented.
The feed also gets updated with batches of changes like train station openings, bus stop relocations and stop ID reassignments.
Q: Which reroutes end up in your GTFS data?
A: We try to include as many reroutes as are practical in our data. However, short or unexpected reroutes are not included, due to the necessary lead-time to write and publish new schedule data. We encourage you to combine service information with use of our Customer Alerts API so all service information that may help your end users is included in products.
Q: Why is some seemingly-similar information in the GTFS feed slightly different than what's in the Bus Tracker API?
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.
Get the feed
The CTA implementation of GTFS is the feed delivered in a ZIP file with 10 tables of GTFS data, plus an HTML file containing a copy of the license agreement and terms of use (Developer License Agreement and Terms of Use).
The feed is located at:
https://www.transitchicago.com/downloads/sch_data/
Download the ZIP file you see listed. Only one package is posted at any given time, typically representing CTA service from now until a couple of months in the future. Use the Calendar table to see on which days and dates service in the Trips table are effective.
More information
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 the Bus Tracker API.