An open catalog of transit/mobility data feeds and operators.
This catalog is used to power the canonical Transitland platform, is available for distributed used of the transitland-lib tooling, and is open to use as a "crosswalk" within other transportation data systems.
Table of contents:
Public mobility/transit data feeds cataloged in the Distributed Mobility Feed Registry format.
Includes feeds in the following data specifications (specs):
- GTFS
- GTFS Realtime
- GBFS - automatically synchronized from https://github.com/NABSA/gbfs/blob/master/systems.csv
- MDS - automatically synchronized from https://github.com/openmobilityfoundation/mobility-data-specification/blob/main/providers.csv
TODO: describe the new operator records (as JSON files)
TODO: give a checklist for creating a new operator record
TODO: link to operator listings on Transitland v2 website
- Duplicate an existing DMFR file under the
./feeds
directory. Title your new file with the hostname of the GTFS feed you are adding. - Add the appropriate URL to
current_static
- Propose a new Onestop ID for the feed; this can now be a "two-part" Onestop ID, which begins with
f-
and continues with a unique string, like the transit operator's name; use~
instead of spaces or other punctuation in the name component. - Add license and/or authorization metadata if you are aware of it.
- Open a PR. Feel free to add any questions as a comment on the PR if you are uncertain about your DMFR file.
- GitHub Actions (continuous integration service) will run a basic validation check on your PR and report any errors.
- A moderator will review and comment on your PR. If you don't get a response shortly, feel free to ping us at [email protected]
For more information on what can go into a DMFR file, see the DMFR documentation.
Every feed and operator record in the Atlas repository is identified by a unique Onestop ID. Onestop IDs are meant to be globally unique (no duplicates in the world) and to be stable (no change over time).
To simplify the process of creating Onestop IDs, we now allow two different variants:
- a three-part Onestop ID includes an entity prefix, a geohash, and a name. For example:
f-9q9-bart
- a two-part Onestop ID includes just the entity prefix and a name. For example:
f-banning~pass~transit
The two-part Onestop ID is simpler to create if you are manually adding records to the Transitland Atlas repository.
Rules for Onestop IDs in this repository:
- Feeds start with
f-
and operators start witho-
- Geohash part is optional
- Name can include any alphanumeric characters in UTF-8
- The only separation or punctuation character allowed in the name component is a tilde (
~
)
All data files in this repository are made available under the Community Data License Agreement – Permissive, Version 1.0. This license allows you to:
- use this data for commercial, educational, or research purposes and be able to trust that it's cleanly licensed
- duplicate data, as long as you mention (attribute) this source
- use this data to create analyses and derived data (such as geocoding), without needing to provide attribution
We welcome you to contribute your edits and improvements directly to this repository. Please open a pull request!