Contents
Datastore API endpoints
To query the Transitland Datastore API, use the base URL of https://transit.land/, appended with the endpoint information below. For example, to find routes operated by the San Francisco Municipal Transportation Agency (SFMTA), you can use this query: https://transit.land/api/v1/routes?operated_by=o-9q8y-sfmta.
The following endpoints are available in Transitland Datastore API.
| Method | Example URL | Parameters |
|---|---|---|
GET | /api/v1/changesets?applied=false | changesets that have not yet been applied |
POST | /api/v1/changesets | include a |
PUT | /api/v1/changesets/32(a Changeset can only be updated if it hasn't yet been applied) | include a |
POST | /api/v1/changesets/1/check | (secured) |
POST | /api/v1/changesets/1/apply | (secured) |
POST | /api/v1/changesets/1/revert | (secured) |
DELETE | /api/v1/changesets/1 | Delete Changeset (secured) |
GET | /api/v1/changesets/1/change_payloads | |
PUT | /api/v1/changesets/1/change_payloads | Add an additional |
POST | /api/v1/changesets/1/change_payloads | |
GET | /api/v1/changesets/1/change_payloads/1 | |
PUT | /api/v1/changesets/1/change_payloads/1 | (secured) |
DELETE | /api/v1/changesets/1/change_payloads/1 | (secured) |
GET | /api/v1/issues | |
GET | /api/v1/issues/1 | |
GET | /api/v1/issues/categories | all available categories and issue_types of each category |
GET | /api/v1/onestop_id/o-9q8y-SFMTA | final part of the path can be a Onestop ID for any type of entity (for example, a stop or an operator) |
GET | /api/v1/stops | none required |
GET | /api/v1/stops?imported_with_gtfs_id=true>fs_id=PITT | gtfs_id is the ID used in a GTFS feed's stops.txt file |
GET | /api/v1/stops?lon=-121.977772198&lat=37.413530093&r=100 | lon is longitude; lat is latitude; r is radius of search in meters (if not specified, defaults to 100 meters) |
GET | /api/v1/stops?bbox=-122.4183,37.7758,-122.4120,37.7858 | bbox is a search bounding box with southwest longitude, southwest latitude, northeast longitude, northeast latitude (separated by commas) |
GET | /api/v1/stops?served_by=o-9q9-BART,r-9q8y-richmond~dalycity~millbrae | served_by can be any number of Onestop ID's for operators and routes |
GET | /api/v1/stops?tag_key=wheelchair_boarding | find all stops that have a tag of tag_key with any value |
GET | /api/v1/stops?tag_key=wheelchair_boarding&tag_value=1 | find all stops that have a tag of tag_key and a value of tag_value |
GET | /api/v1/stops?import_level=4 | find all stops with a given import level |
GET | /api/v1/operators | none required |
GET | /api/v1/operators?imported_with_gtfs_id=true>fs_id=CT | gtfs_id is the ID used in a GTFS feed's agencies.txt file |
GET | /api/v1/operators?lon=-121.977772198&lat=37.413530093&r=100 | lon is longitude; lat is latitude; r is radius of search in meters (if not specified, defaults to 100 meters) |
GET | /api/v1/operators?bbox=-122.4183,37.7758,-122.4120,37.7858 | bbox is a search bounding box with southwest longitude, southwest latitude, northeast longitude, northeast latitude (separated by commas) |
GET | /api/v1/operators?tag_key=agency_timezone | find all operators that have a tag of tag_key with any value |
GET | /api/v1/operators?tag_key=agency_timezone&tag_value=America/Los_Angeles | find all operators that have a tag of tag_key and a value of tag_value |
GET | /api/v1/operators?import_level=4 | find all operators with a given import level |
GET | /api/v1/routes | none required |
GET | /api/v1/routes?imported_with_gtfs_id=true>fs_id=Lo-16APR | gtfs_id is the ID used in a GTFS feed's routes.txt file |
GET | /api/v1/routes?imported_with_gtfs_id=true>fs_id=Lo-16APR&imported_from_feed_version=fd0bf2327f8034ceabff6d914220531def1e3903 | gtfs_id is the ID used in a GTFS feed's routes.txt file and imported_from_feed_version is a feed version SHA1 hash |
GET | /api/v1/routes?operated_by=o-9q9-BART | operated_by is a Onestop ID for an operator/agency |
GET | /api/v1/routes?vehicle_type=bus,4 | find all routes with vehicle type(s) by integer or string. Possible values defined by the GTFS spec for the route_type column and the Extended GTFS Route Types. Separate multiple vehicle types by commas. |
GET | /api/v1/routes?bbox=-122.4183,37.7758,-122.4120,37.7858 | bbox is a search bounding box with southwest longitude, southwest latitude, northeast longitude, northeast latitude (separated by commas) |
GET | /api/v1/routes?tag_key=route_color | find all routes that have a tag of tag_key with any value |
GET | /api/v1/routes?tag_key=route_color&tag_value=FEF0B5 | find all routes that have a tag of tag_key and a value of tag_value |
GET | /api/v1/routes?traverses=r-9q9-pittsburg~baypoint~sfia~millbrae-49ae87-5ae164 | find all routes having specified route stop patterns |
GET | /api/v1/routes?import_level=4 | find all routes with a given import level |
GET | /api/v1/routes?include_geometry=true | determine whether to return the route geometry. The default is true, which means route geometry is part of the response. |
GET | /api/v1/route_stop_patterns | none required |
GET | /api/v1/route_stop_patterns?traversed_by=r-9q8y-richmond~dalycity~millbrae | find all Route Stop Patterns belonging to route |
GET | /api/v1/route_stop_patterns?bbox=-122.4183,37.7758,-122.4120,37.7858 | bbox is a search bounding box with southwest longitude, southwest latitude, northeast longitude, northeast latitude (separated by commas) |
GET | /api/v1/route_stop_patterns?stops_visited=s-dr5rec3weg-whitehallferryterminal,s-dr5r4rn32w-stgeorgeferryterminal | any one or more stop Onestop IDs, separated by comma. Finds Route Stop Patterns with stops_visited in stop_pattern. |
GET | /api/v1/route_stop_patterns?trips=01SFO10,02SFO10 | any one or more trip ids, separated by comma. Finds Route Stop Patterns with specified trips in trips. |
POST | /api/v1/webhooks/feed_fetcher | (secured) fetches all feeds |
POST | /api/v1/webhooks/feed_fetcher?feed_onestop_id=f-9q9-caltrain | (secured) fetches only one feed |
POST | /api/v1/webhooks/feed_eater?feed_onestop_id=f-9q9-caltrain,feed_version_sha1=ab1e6ac73943082803f110df4b0fdd63a1d6b9f7 | (secured) |
GET | /api/v1/feeds | none required |
GET | /api/v1/feeds?tag_key=license | find all feeds that have a tag of tag_key with any value |
GET | /api/v1/feeds?tag_key=license&tag_value=Creative%20Commons%20Attribution%203.0%20Unported%20License | find all feeds that have a tag of tag_key and a value of tag_value |
GET | /api/v1/feeds?bbox=-122.4183,37.7758,-122.4120,37.7858 | bbox is a search bounding box with southwest longitude, southwest latitude, northeast longitude, northeast latitude (separated by commas) |
GET | /api/v1/feeds/f-9q9-bayarearapidtransit | none required |
GET | /api/v1/feed_versions?feed_onestop_id=f-9q9-bayarearapidtransit | filter feed versions based on feed_onestop_id (which can be a comma-separated list of multiple Onestop IDs) |
GET | /api/v1/feed_versions/c06b4b6b40815f27c81b4fcf486ac1fd70ab1966 | none required |
PUT | /api/v1/feed_versions/c06b4b6b40815f27c81b4fcf486ac1fd70ab1966 | (secured) update import_level |
GET | /api/v1/feed_version_imports?feed_onestop_id=f-9q9-bayarearapidtransit&feed_version_sha1=c06b4b6b40815f27c81b4fcf486ac1fd70ab1966 | filter feed version import records based on feed_onestop_id and/or feed_version_sha1 (both of which can be comma-separated lists of multiple Onestop IDs) |
GET | /api/v1/feed_version_imports/1 | none required |
GET | /api/v1/schedule_stop_pairs | Find all |
GET | /api/v1/schedule_stop_pairs?origin_onestop_id=s-9q8yyugptw-sanfranciscocaltrainstation | Find all Schedule Stop Pairs from origin. Accepts multiple Onestop IDs, separated by commas. |
GET | /api/v1/schedule_stop_pairs?destination_onestop_id=s-9q8yyugptw-sanfranciscocaltrainstation | Find all Schedule Stop Pairs to a destination. Accepts multiple Onestop IDs, separated by commas. |
GET | /api/v1/schedule_stop_pairs?date=2015-08-05 | Find all Schedule Stop Pairs from origin on date |
GET | /api/v1/schedule_stop_pairs?service_from_date=2015-08-05 | Find all Schedule Stop Pairs in effect from a date |
GET | /api/v1/schedule_stop_pairs?service_before_date=2015-10-20 | Find all Schedule Stop Pairs in effect before a date |
GET | /api/v1/schedule_stop_pairs?origin_departure_between=09:00:00,09:10:00 | Find all Schedule Stop Pairs with origin_departure_time in a range |
GET | /api/v1/schedule_stop_pairs?trip=6507768-CT-14OCT-Combo-Weekday-01 | Find all Schedule Stop Pairs by trip identifier |
GET | /api/v1/schedule_stop_pairs?route_onestop_id=r-9q8y-richmond~dalycity~millbrae | Find all Schedule Stop Pairs by route. Accepts multiple Onestop IDs, separated by commas. |
GET | /api/v1/schedule_stop_pairs?operator_onestop_id=o-9q9-caltrain | Find all Schedule Stop Pairs by operator. Accepts multiple Onestop IDs, separated by commas. |
GET | /api/v1/schedule_stop_pairs?bbox=-121.0,35.0,-124.0,37.0 | Find all Schedule Stop Pairs originating within a bounding box |
GET | /api/v1/schedule_stop_pairs?active=true | Schedule Stop Pairs from active FeedVersions |
GET | /api/v1/schedule_stop_pairs?import_level=2 | Schedule Stop Pairs from FeedVersion with a given import_level |
GET | /api/v1/feed_version_infos?feed_version_sha1=700753c9707f4fb203776d13fcb1e372d7b068fa | FeedVersionInfo records for a given Feed Version |
GET | /api/v1/feed_version_infos?feed_onestop_id=f-9q9-caltrain | FeedVersionInfo records for a given Feed |
GET | /api/v1/feed_version_infos?type=FeedVersionInfoStatistics | FeedVersionInfo by info type |
Pagination for JSON endpoints
?offset=50is the index of the first entity to be displayed (starts with 0)- By default, 50 entities are displayed per page. To change the number, specify
?per_page=1000. - To show the total number of results, use
?total=true
Max Request Size
If queries have not completed after two minutes, they will be killed and you will receive a timeout response from the Datastore. If your query times out, try reducing the per_page count, the bounding box size, etc. If your query seems as small as is possible, let us know.
Format
- By default, responses are paginated JSON
- Specify
.geojsoninstead for GeoJSON on some endpoints. For example:/api/v1/stops.geojson?bbox=-122.4183,37.7758,-122.4120,37.7858and/api/v1/routes.geojson?operated_by=o-9q9-bayarearapidtransit
API authentication
Any API calls that involve writing to the database (creating/editing/applying