Skip to content


  • GTFS Spec - Specification for the General Transit Data Feed, or GTFS. Available in several languages.
  • GTFS Best Practices - Best practices for producers of a GTFS feed.

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 Valhalla). Main features: fast reading and writing of GTFS feeds, support for extended GTFS route types, simple working with GTFS Date and Time formats.




  • OneBusAway GTFS Modules - A Java-based library for reading, writing, and transforming public transit data in the GTFS format, including database support.


  • 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.
  • gtfs_functions - Python package with useful functions to create geo-spatial visualizations from GTFS feeds.
  • gtfs-segments - Python package that represents GTFS data for buses in a concise tabular manner using segments.
  • 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.8+ 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.
  • transit_service_analyst - A Python library to support transit service analysis.


  • [r-transit]( - Collection of tools for GTFS in R.
  • gtfsio - Fast and flexible functions to read and write GTFS in R.
  • tidytransit - Use tidytransit to map transit stops and routes, calculate travel times and transit frequencies, and validate transit feeds. tidytransit reads the General Transit Feed Specification into tidyverse and simple features data frames.


  • 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.

  • Chouette - Converts French-Transmodel, SIRI, NETeX. See website for more info.
  • extract-gtfs-pathways – Command-line tool to extract pathways as GeoJSON from a GTFS dataset.
  • extract-gtfs-shapes – Command-line tool to extract shapes as GeoJSON from a GTFS dataset.
  • GTFS-OSM-Sync - A Java tool for synchronizing data in GTFS format with
  • gtfs-parser - The GTFS-PARSER library is a library to allow javascript to parse gtfs and create geojson on client or server.
  • 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-route-shapes - A Python script to generate a single geoJSON shape for each transit route in a GTFS archive.
  • 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.
  • gtfs2gps - An R package that converts public transportation data in GTFS format to GPS-like records in a data.table, where each row represents the timestamp of each vehicle at a given spatial resolution.
  • gtfs2emis - An R package to estimate the emission levels of public transport vehicles based on General Transit Feed Specification (GTFS) data.
  • 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.
  • hafas-generate-gtfs (work-in-progress) – A Javascript tool to generate GTFS dumps from HAFAS endpoints.
  • Hafas2GTFS - Hafas2GTFS converter written in Python, optimized for SBB HAFAS feeds.
  • kml-to-gtfs-shapes - Javascript tool to convert polylines from a KML file into a GTFS shapes.txt file. Hosted on GitHub here.
  • NeTEx-to-GTFS Converter Java - Converts NeTEX datasets into GTFS datasets. The input NeTEx datasets are required to follow the Nordic NeTEx Profile.
  • o2g - A simple tool to extract GTFS feed from OpenStreetMap.
  • Open-Transport SYNTHESE Convertors - Converts French-Transmodel, SIRI, NETeX, HAFAS, HASTUS, VDV452, and more.
  • onebusaway-gtfs-to-barefoot - A Java tool to create a Barefoot mapfile from a GTFS file.
  • onebusaway-vdv-modules - A Java library for working with transit data in the VDV format, including converting VDV-452 schedule data into GTFS.
  • osm2gtfs - Turn OpenStreetMap data and schedule information into GTFS.
  • 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).
  • 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).
  • 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.
  • UK2GTFS - R package that converts UK format TransXchange (bus, metro, tram, ferry) and CIF (rail) timetables to GTFS.

GTFS Data Collection and Maintenance Tools

GTFS Merge Tools

GTFS Analysis Tools

  • GTFS Kit - A Python 3.6+ tool kit for analyzing General Transit Feed Specification (GTFS) data. Supersedes GTFSTK.
  • gtfstools - A set of convenient tools for editing and analysing transit feeds in GTFS format in R.
  • transit_service_analyst - A Python library to support transit service analysis.
  • Peartree - A Python library for converting transit data into a directed graph for network analysis.
  • R5: Rapid Realistic Routing on Real-world and Reimagined networks - A Java-based routing engine developed by Conveyal for multimodal (transit/bike/walk/car) networks. It currently plans many trips over a time window for scenario planning and analytics purposes. A related R wrapper package (r5r) is developed independently by IPEA. See also the performance comparison from Higgins et al. (2022), linked below.
  • tidytransit - An R package to read GTFS data into tibbles and simple features dataframes to map transit stops and routes, calculate travel times and transit frequencies, and validate transit feeds.
  • transitr - An R package for constructing and modelling a transit network in real time to obtain vehicle ETAs
  • transit-intensity - A simple project for measuring transit intensity written in Go.
  • Busbuzzard - Inference of probabilistic schedules from empirical data about transit vehicles.
  • ESRI ArcGIS Public Transit Tools (GTFS) - Tools for working with public transit data in ArcGIS
  • GTFS-to-Chart - Creates stringline charts showing all vehicles on a transit route from GTFS data.
  • GTFS Display - Analyse, monitor and maintain GTFS data (Example instances).
  • PTNA - Public Transit Nework Analysis is a open source system for finding and aggregating information about public transportation lines mapped in OSM.

GTFS Timetable Publishing Tools

  • GTFS-to-HTML - Generate human-readable timetables in HTML or PDF format directly from GTFS.
  • Timetable Kit - An open source Python 3.10 module and scripts depending on GTFS Kit, designed to create complex printed/PDF timetables with flexible layouts. Currently only working out of the box for Amtrak's GTFS, but under active development.
  • 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