Courses & TutorialsProgramming

Awesome Transit API – Massive Collection of Resources

Spread the love
Community list of transit APIs, apps, datasets, research, and software 🚌🌟🚋🌟🚂

Table of Contents

Getting started

If this is your first time dealing with transit data, you might find these links useful:

  • GTFS – A GTFS feed is a group of text files that contains infrequently changing transit data, like stops, routes, trips, and other schedule data. Transit agencies typically update their GTFS feed every few months.
  • GTFS Realtime – GTFS Realtime consists of three binary files that contain realtime vehicle positions, realtime arrival information, and service alerts. Transit agencies typically update these files every minute.
  • OpenMobilityData (former TransitFeeds) – List of GTFS/GTFS-realtime data feeds from around the world. If you’re trying to get realtime data for some agency, this is a good place to start.
  • World Bank – “Intro. to GTFS” online course – A free, online, self-paced course for learning about GTFS and GTFS-realtime.
  • Open Transit Data Toolkit – A series of lessons to help people utilize open transit data.
  • MBTA GTFS Onboarding – An interactive tutorial created by MBTA for GTFS static. A stand-alone Docker image is available on GitHub as well as a hosted/no-install version of the Jupyter notebook.


Places to ask questions and find other community resources.


Places to access collections of GTFS and other transit and multimodal data

3rd party GTFS URL directories

  • Transitland – Community editable list of many transit agency GTFS datasets. Also provides an API to access the data as JSON/GeoJSON and a playground to try out the data.
  • OpenMobilityData – List of GTFS and GTFS-RT feeds. Archives and validates the GTFS feeds and allows you to preview both GTFS and GTFS-RT through the browser.
  • GTFS Data Exchange (Deprecated) – Formerly the definitive directory of GTFS feed URLs. Shutdown in 2016. But 93 GB of data from 2008 to 2016 is available upon request.

Transit agency data archives

  • CapMetrics – Historical vehicle locations for Austin’s transit agency (CapMetro). Data is collected by capmetricsd, a Go daemon.

National government datasets

Proprietary (non-standard) vendor APIs

  • Transport API – REST API for aggregated transit data for the United Kingdom. Fee-based access.
  • TransLoc OpenAPI – REST API for real-time vehicle, route, stop, and arrival data for over 60 transit systems in the United States that have purchased TransLoc’s AVL hardware and software.
  • NextBus API – REST API for real-time vehicle, route, stop, and arrival data for agencies that have puchased NextBus’s hardware and/or software.
  • – REST API for journey planning, stop schedules, isocrhons and lot more on US and EU. Navitia is the opensource engine behind the live API.
  • CityBikes – REST API for aggregated bikeshare data from around the world. Powered by pyBikes.
  • HAFAS – Propriety public transport management software by HaCon (list of endpoints)

Crowdsourced transit data

  • – A collaborative platform for mapping transit systems, with an emphasis on their historical evolution. The data can be downloaded as GeoJSON or CSV from
  • OpenStreetMap (OSM) – The collaborative platform for mapping the world, including transport, transit, and routing data.

Software for Creating APIs

Software that you can set up to provide an API to transit and multimodal data.

  • OneBusAway – A Java app that consumes GTFS and GTFS-Realtime (along with other formats) and turns them into an easy to use REST API.
  • OpenTripPlanner – An open source platform for multi-modal and multi-agency journey planning, as well as returning information about a multi-modal graph (using data sources such as GTFS and OpenStreetMap).
  • TransitClock – Java application that can consume raw vehicle positions and generate prediction times in formats such as GTFS-realtime. Formerly known as “Transitime”.
  • Linked Connections – An open-source, scalable intermodal route planning engine, which allows clients to execute the route planning algorithm (as opposed to the server). Uses GTFS data.
  • TransiCast – Provides public transportation data for North America in a single, integrated call and response format. The data is provided in stream-parsable XML and JSON formats. Open-source on Google Code. Hosted version at requires payment.
  • gtfs-server – A web server, written in Rust that uses PostGIS as a backend to serve GTFS data via a HTTP endpoint
  • Navitia is the opensource engine behind the live API.
  • pyBikes – Software powering CityBikes for worldwide bikeshare system info
  • hafas-rest-api – Expose a HAFAS endpoint as a REST API.
  • GraphHopper Routing Engine Open source routing engine for OpenStreetMap. Use it as Java library or server.

Agency Tools

Tools for transit agencies. See also GTFS Data Collection and Maintenance Tools for tools specific to GTFS.

  • Remix – A webapp that lets transit agencies easily plan routes.
  • AC Transit RestroomFinder – Pinpoints the nearest authorized restroom for bus operator and field staff, using GPS and on-screen map.
  • AC Transit Training and Education Department (TED) application – This application supports the District’s training operations for transportation and maintenance employees, primarily in the positions of Bus Operators and Heavy Duty Coach Mechanics (Apprentice and Journey), although the system supports new courses and apprenticeship programs.
  • AC Transit Customer Relations application (CusRel) – Public transit ticketing system for customer issues and feedback with: inter-departmental routing with notifications, department/person assigments, simple workflow, ticket searching, pre-canned reports, daily reminders and more.
  • TransAM – An open-source asset management platform for public transportation agencies. Open-source on Github.
  • RidePilot – An open-source Computer Aided Scheduling and Dispatch (CASD) software system to meet the needs of small scale human service transportation agencies (for more info see Cambridge Systematics’s marketing site).
  • TNExT – Transit Network Explorer Tool (TNExT) is a web-based software tool developed for the visualization, analysis, and reporting of regional and statewide transit networks in the state of Oregon.
  • Route Trends (webapp, GitHub) – An R Shiny app to ingest ridership time series, and return seasonal, trend, and residual components according to STL methodology and forecasts including uncertainty based on those components. Sponsored by Metro Transit (Minneapolis-St. Paul).
  • TBEST – TBEST (Transit Boardings Estimation and Simulation Tool) is an effort to develop a multi-faceted GIS-based modeling, planning and analysis tool which integrates socio-economic, land use, and transit network data into a platform for scenario-based transit ridership estimation and analysis. Funded by the Florida Department of Transportation. Free to use but not open-source.


Experimental and production transit hardware.

  • Bus Tracking GPS – Code for Miami prototype of a cheap open-source solution to track transit buses.


Apps people use when taking transit.

Web Apps

  • TransitScreen – Custom realtime displays of all local transportation choices
  • Instabus – Realtime map of Austin’s (CapMetro) public transit. Has no server/backend dependency at all and runs completely on GitHub pages.
  • Maryland MTA Real-time Vehicle Tracking
  • OpenTripPlanner Client GWT – A Google Web Toolkit-based web interface for OpenTripPlanner
  • OpenTripPlanner.js – A Javascript-based client for OpenTripPlanner (no longer under development)
  • OTP-UI React Component Library – React Javascript component library, which can be used to build trip planner webapps. See the Storybook for a demo.
  • GTFS-realtime Alerts Producer Web Application – A Java-based web application for producing GTFS-realtime Service Alerts.
  • HRT BUS Web app – HRT Bus API publishes real time bus data from Hampton Roads Transit through an application programming interface for developers to make apps from it.
  • Transit-Map – Web app that animates vehicles (markers) on a map using the public transport timetables to interpolate their positions along the routes (polylines).
  • Bikeshare Map – Status of all worldwide bikeshare stations
  • Bongo – Real-time Transit Tracking for Iowa City, Coralville and the University of Iowa. Awesome because it combines three disparate transit systems into one UI.
  • Transitive.js – Creates a customizable web map layer of transit routes using Leaflet or D3.
  • Brand New Subway – An interactive transportation planning game that lets players alter the NYC subway system to their heart’s content.
  • CityMapper Webapp – Really polished webapp with trip planner and route status for over 30 of cities.
  • Google I/O Transport Tracker – Shows shuttle arrival times for Google I/O conference, based on the open-source transport-tracker project. Note: To implement this yourself, you need a Google Maps APIs Premium Plan license.
  • YourStop – Mobile friendly web app which consumes GTFS feeds and displays both live and scheduled trips for stops. Launched with MBTA, YRT/Viva and Maryland MTA.
  • 1-Click – A virtual “trip aggregator” that assembles information on a wide variety of available modes: public transit, private, rail, rideshare, carpool, volunteer, paratransit, and walking and biking. Open-source on Github.
  • Bustime – Public transport real-time monitoring with WebSocket updates.
  • DC MetroHero – Realtime vehicle position and arrivals and departure information for the Washington, D.C. region’s WMATA Metrorail and Metrobus systems. WebApp, Android, and iOS apps avaliable.
  • Transit Tracker – Realtime vehicle position for Greater Montreal & Toronto, Canada
  • GTFS Builder – A free web-based application to help you create GTFS files. Maintained by the National Rural Transit Assistance Program (RTAP).
  • – A collaborative platform for mapping transit systems, with an emphasis on their historical evolution.

Native Apps (open source)

Native Apps (closed source)


  • Visualizing MBTA Data – Interactive graphs that show how people use Boston’s subway system.
  • MIT COAXS – Co-creative Planning of Transit Corridors using Accessibility-Based Stakeholder Engagement (shows route scenarios using OpenTripPlanner Analyst).
  • TRAVIC Transit Visualization Client – Visualizes vehicles moving based on static GTFS data (and sometimes realtime data). Supports over 260 cities. Github account for geOps organization is here.
  • MTA Frequency – Frequency visualization of subways and buses in New York City built using Transitland.
  • Traze by Veridict – Visualization of public transport vehicles from all over the world. Collaborate with other users to get real-time updates even when it is not available from the agency. Based on a number of sources, including GTFS and GTFS-RT. (Previously known as Livemap24).
  • SEPTA Rail OTP Report – An online on-time performance reporing & drill down tool using GTFS.
  • TransitFlow Animate GTFS data around the world using Processing and Transitland.
  • All Transit – Interactive GTFS route and schedule animation (for U.S. cities) using Mapbox GL JS, and Transitland. Github repository here.
  • gtfspy-webviz – Web application for animation and visualization of GTFS data using gtfspy.
  • Mapnificent – Shows areas you can reach with public transport in a given time. Open-source on GitHub, live at
  • Toronto Transit Explorer – A Java application that visualizes transit, biking and walking accessibility across the city of Toronto. Live version hosted here. Uses a modified version of R5 for routing.
  • fastest-bus-analysis-in-the-west – A python Pandas script that combines Ridership/APC, Swiftly speed and dwell data, bus stop inventory, GTFS, and geospatial shapes to create a stop by stop, route by route, time grouping filterable dataset for cross-analyses. The dataset is then visualized in Tableau to help VTA Planners find places to make bus and rail network faster and more reliable through speedups methods like stop consolidation and dedicated lanes.
  • TNExT – Transit Network Explorer Tool (TNExT) is a web-based software tool developed for the visualization, analysis, and reporting of regional and statewide transit networks in the state of Oregon.


GTFS Libraries

Software that makes it easy to consume GTFS data in a variety of languages.


  • CGTFS – C library for reading static GTFS feeds. Supports reading unpacked feeds into application memory or into SQLite databases.
  • RRRR Rapid Real-time Routing – RRRR (usually pronounced R4) is a C-language implementation of the RAPTOR public transit routing algorithm.


  • just_gtfs – C++17 header-only library for reading and writing GTFS (used in MAPS.ME). Main features: fast reading and writing of GTFS feeds, support for extended GTFS route types, simple working with GTFS Date and Time formats.





  • gtfs-sequelize – Node.js library modeling the static GTFS using sequelize.js.
  • gtfs-utils – Utilities to process GTFS data sets (e.g., “flattening” calendar.txt & calendar_dates.txt, computing arrival/departure times of trips).
  • gtfs-via-postgres – Yet another tool to process GTFS using PostgreSQL.
  • Node-GTFS – Loads transit data from GTFS files, unzips it and stores it to a SQLite database. Provides some methods to query for agencies, routes, stops and times.



  • ESRI public-transit-tools – Tools for working with public transit data in ArcGIS (license for ArcGIS required).
  • gtfsdb – Python library for converting GTFS files into a relational database.
  • gtfslib-python – An open source library in python for reading GTFS files and computing various stats and indicators about Public Transport networks.
  • gtfsman – Repository-like tool in Python to manage and update a huge number of GTFS feeds.
  • gtfspy – Public transport network analysis and travel time computations using Python3. Compatible with Postgres/PostGIS, Oracle, MySQL, and SQLite. Used by gtfspy-webviz.
  • GTFS Kit – A Python 3.6+ tool kit for analyzing General Transit Feed Specification (GTFS) data. Supersedes GTFSTK.
  • GTFSTK – A Python 3 toolkit for analyzing GTFS data in memory. Uses Pandas and Shapely for speed. Superseded by GTFS Kit.
  • Make GTFS – A Python library to make GTFS feeds from basic route information.
  • Mapzen GTFS – A Python GTFS library that supports reading individual GTFS tables, or constructing a graph to represent each agency in a feed.
  • multigtfs – A Django application to import and export GTFS.
  • partridge – A fast, forgiving Python GTFS reader built on pandas DataFrames.


  • trread – A transit (GTFS) file reader for R.


  • GTFS-viz – Ruby script that converts a set of GTFS files into a SQLite database + GeoJSONs (needed by the Transit Map web application)

GTFS Converters

Converters from various static schedule formats to and from GTFS.

  • Transmodel and IFF to GTFS – Imports and syncs (Transmodel) BISON Koppelvlak1, IFF (a format written by HP/EDS, somewhat similiar to ATCO CIF) to import timetables of the railway networks. The internal pseudo-NETeX datastructure allows to export to GTFS and there are proof-of-concepts to export to other formats such as NETeX, GTFS and IFF.
  • Open-Transport SYNTHESE Convertors – Converts French-Transmodel, SIRI, NETeX, HAFAS, HASTUS, VDV452, and more.
  • Chouette – Converts French-Transmodel, SIRI, NETeX. See website for more info.
  • osm2gtfs – Turn OpenStreetMap data and schedule information into GTFS.
  • GTFS-OSM-Sync – A Java tool for synchronizing data in GTFS format with
  • onebusaway-gtfs-to-barefoot – A Java tool to create a Barefoot mapfile from a GTFS file.
  • o2g – A simple tool to extract GTFS feed from OpenStreetMap.
  • transloc-gtfs-rectifier – Python application that attempts to assign GTFS stop_ids to TransLoc IDs using TransLoc’s API (TransLoc doesn’t provide GTFS stop_ids in their API).
  • Hafas2GTFS – Hafas2GTFS converter written in Python, optimized for SBB HAFAS feeds.
  • hafas-generate-gtfs (work-in-progress)] – A Javascript tool to generate GTFS dumps from HAFAS endpoints.
  • gtsf – general transit (GTFS) simple (geographic) features (sf) in R. can be used to convert from GTFS to Shapefile, GeoJSON, and other formats through GDAL.
  • transit_model – A Rust library to convert to/from the following formats: GTFS, NTFS (for Navitia, see Software for Creating APIs), TransXChange (UK standard format), KV1 (Netherland standard format) or NeTEx (European standard format).
  • onebusaway-vdv-modules – A Java library for working with transit data in the VDV format, including converting VDV-452 schedule data into GTFS.
  • gtfs-to-geojson – Javascript tool that converts transit data in GTFS shapes and stops into geoJSON. This is useful for creating maps of transit routes.
  • gtfs-service-area – Compute a transit service area from static GTFS. Results are output as single-layer .geojson files. Dockerized version of gtfs-to-geojson.

GTFS Data Collection and Maintenance Tools

  • bus-router – Python script that generates missing shapes.txt for GTFS using routing from Google Maps Directions API or OSRM.
  • GTFS Editor A (self-hosted) web-based GTFS editing framework. (Note: this project has been deprecated in favor of IBI Data Tools.)
  • GTFS Editor for Vagrant Quickly set up the GTFS editor (above) using Vagrant
  • static-GTFS-manager – A (self-hosted) browser-based user interface for creating, editing, exporting static GTFS (see related post). Live demo here.
  • TransitWand – An open source web and mobile application for collecting transit data. Use it to create GTFS feeds, capture passenger counts or generate GIS datasets.
  • IBI Data Tools – A web application that handles GTFS editing, validating, quality checking, and deploying to OpenTripPlanner. (Combines and builds upon the functionality of the deprecated Gtfs Data Manager and GTFS Editor.)
  • GTFS.html – An entirely browser-based tool to view GTFS feeds. Use it to view routes, stops, timetables, etc.
  • pfaedle – Precise map-matching for GTFS using OpenStreetMap data
  • GTFS shape mapfit – Python tool that fits GTFS shape files and stops to a given OSM map file. Uses pymapmatch for the matching.
  • GTFS Builder – A free web-based application to help you create GTFS files. Maintained by the National Rural Transit Assistance Program (RTAP).
  • gtfs-station-builder – UI tool to help build the internal structure of stations (including pathways.txt)

GTFS Analysis Tools

  • Peartree – A Python library for converting transit data into a directed graph for network analysis.
  • gtfsr – An R package for easily importing, validating, and mapping transit data that follows the General Transit Feed Specification (GTFS) format.
  • tidytransit (formerly bustt) – Reads GTFS data into tidyverse and simple features dataframes to map transit stops and routes, calculate transit frequencies, and validate transit feeds. tidytransit is a fork of gtfsr, published to CRAN, with frequency/headway calculation functions.
  • transitr – An R package for constructing and modelling a transit network in real time to obtain vehicle ETAs
  • Busbuzzard – Inference of probabilistic schedules from empirical data about transit vehicles.

GTFS Timetable Publishing Tools

  • GTFS to HTML – A creates human-readable, user-friendly transit timetables in HTML format directly from GTFS transit data.
  • TimeTablePublisher (TTPUB) – A web publishing system developed by TriMet that allows a transit agency to examine, modify, and transform raw scheduling data into easy-to-read timetables for customer information purposes

GTFS Validators

GTFS Realtime

GTFS Realtime Libraries & Demo Apps

GTFS Realtime Validators

  • gtfs-realtime-validator – A GTFS-realtime validation tool developed by the Center for Urban Transportation Research at the University of South Florida. Also includes an integrated version of the gtfs-validator tool.

GTFS Realtime (and Other Real-time API) Archival Tools

  • GTFS-realtime to SQL – Parses a GTFS-RealTime feed into an SQL database (used in
  • gtfsrdb – A Python tool that supports reading and archiving GTFS-realtime feeds into a database
  • retro-gtfs – A Python application that collects real-time data from the Nextbus API and archives it into the GTFS format (i.e., retrospective GTFS).

GTFS Realtime Convertors

GTFS Realtime Utilities

  • gtfs-rt-dump – Converts protocol buffer format to plain text for easy viewing of a GTFS-realtime feed in plain text (for debugging purposes)
  • GTFS-realtime Printer – Java-based utility to print out information from a GTFS-realtime file or URL.
  • gtfs-rt-inspector – Web app to inspect & analyze any (CORS-enabled) GTFS Realtime feed. Open-source on GitHub.
  • print-gtfs-rt-cli – Javascript tool to read a GTFS Realtime feed from stdin, print human-readable or as JSON.
  • GTFS-realtime Munin Plugin – Provides a Munin plugin for logging information about a GTFS-realtime feed.
  • GTFS-realtime Nagio Plugin – Provides a Nagios plugin for monitoring a GTFS-realtime feed
  • GTFS-realtime-test-service – A tool for mocking GTFS-realtime feed content (e.g., for use in testing a GTFS-realtime consuming application).
  • gtfs-rt-differential-to-full-dataset – Javascript tool to transform a continuous GTFS Realtime stream of DIFFERENTIAL incrementality data into a FULL_DATASET dump.
  • gtfs-rt-admin – An admin tool for managing GTFS-RT service alerts (JavaScript and Java).
  • manual-gtfsrt – A Go-based tool that serves a GTFS-RT feed created from editable JSON.


Other multimodal data formats


On-line courses, blog posts, and reports related to open transit data.

On-line courses

Blog posts

Academic papers

Government reports

Community-maintained lists

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button