Access source GTFS feed data with downloads
Access source-data records from the GTFS feed catalog, including source validation reports, licenses, short public content and artifact hashes, and versioned download URLs. Every feed includes a prefilled dataRequestUrl. Filter by countryIso or feedName and save each available file using downloadFileName.
Response fields and units
| Field | Format / unit | Meaning |
|---|---|---|
feeds[].dataRequestUrl | absolute URL | Prefilled data-request form for the feed |
feeds[].derivatives[].size | mebibytes (MiB) | Download file size, calculated as bytes / 1,048,576 |
feeds[].derivatives[].creationDate | YYYY-MM-DD | Artifact creation date |
feeds[].derivatives[].contentHash, feeds[].derivatives[].artifactHash | 16 hexadecimal characters | Logical GTFS content hash and final-file SHA-256 prefix |
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
countryIso | string | No | ISO country code to filter feeds (e.g., 'USA', 'DNK', 'CHE') | IRL |
feedName | string | No | Exact feed name to return one feed and its derivatives | google-transit-combined |
Try It Out
Popular parameters
curl -H "capi-key: Bearer YOUR_API_KEY" \
-H "capi-host: busmaps.com" \
"https://capi.busmaps.com:8443/v1/getGtfsFeedsDownloads?countryIso=IRL&feedName=google-transit-combined"Response Example
[
{
"countryUrl": "ireland",
"countryRegion": "Europe",
"countryName": "Ireland",
"countryIso": "IRL",
"feeds": [
{
"feedId": 3,
"feedName": "google-transit-combined",
"feedGroupId": 7,
"feedGroupName": "transport-for-ireland",
"dataRequestUrl": "https://busmaps.com/en/data-request?scope=feed&feedName=google-transit-combined",
"derivatives": [
{
"type": "source_data",
"size": 168.33,
"path": "https://greens3.transitpdf.com/files/sourcedata/google-transit-combined/711886dd986c0889.zip",
"fileName": "source_gtfs.zip",
"extension": "zip",
"licenseName": "CC_BY",
"publicLink": "hidden",
"creationDate": "2026-08-19",
"contentHash": "23f2f605ec8ad9e5",
"artifactHash": "711886dd986c0889",
"downloadFileName": "source-gtfs-google-transit-combined.zip"
},
{
"type": "source_data",
"size": 0.04,
"path": "https://greens3.transitpdf.com/files/derivatives/sourcedata/google-transit-combined/mobilitydata/c4c13c569bfd65e6.zip",
"fileName": "md.zip",
"extension": "zip",
"licenseName": "Busmaps_licence_v1",
"licenseLink": "https://busmaps.com/en/license",
"creationDate": "2026-08-21",
"artifactHash": "c4c13c569bfd65e6",
"downloadFileName": "google-transit-combined-mobilitydata-report.zip"
}
]
}
]
}
]Response Schema
View JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GTFS Feeds Catalog Response",
"type": "array",
"items": {
"type": "object",
"properties": {
"countryIso": {
"type": "string",
"description": "ISO 3166-1 alpha-3 country code"
},
"countryName": {
"type": "string",
"description": "Country name"
},
"feeds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"feedId": {
"type": "integer",
"description": "Unique feed identifier"
},
"feedGroupId": {
"type": "integer",
"description": "Feed group identifier"
},
"dataRequestUrl": {
"type": "string",
"format": "uri",
"description": "Prefilled data-request form for the feed"
},
"derivatives": {
"type": "array",
"items": {
"type": "object",
"properties": {
"creationDate": {
"type": "string",
"description": "Date feed was created/updated (YYYY-MM-DD format)"
},
"routeTypes": {
"type": [
"array",
"null",
"object"
],
"items": {
"type": "object",
"properties": {
"routeType": {
"type": "integer",
"description": "Transport type (bus, subway, train, tram)"
},
"routeTypeName": {
"type": "string",
"description": "Human-readable transport type name"
},
"routeTypeGroup": {
"type": "string",
"description": "Grouped transport category"
}
},
"required": [
"routeTypeName",
"routeType",
"routeTypeGroup"
]
},
"description": "Route types present in the feed",
"properties": {
"routeTypeName": {
"type": "string",
"description": "Human-readable transport type name"
},
"routeType": {
"type": "integer",
"description": "Transport type (bus, subway, train, tram)"
},
"routeTypeGroup": {
"type": "string",
"description": "Grouped transport category"
}
}
},
"path": {
"type": "string",
"description": "Current color-prefixed R2 download URL; versioned artifact paths use the 16-character artifactHash as the final directory segment"
},
"licenseName": {
"type": "string",
"description": "License identifier"
},
"fileName": {
"type": "string",
"description": "Descriptive file name"
},
"extension": {
"type": "string",
"description": "File format (zip, geojson)"
},
"type": {
"type": "string",
"enum": [
"source_data"
],
"description": "Source-data discriminator"
},
"licenseLink": {
"type": "string",
"description": "URL to license details"
},
"contentHash": {
"type": "string",
"description": "First 16 hexadecimal characters of the logical GTFS content hash"
},
"artifactHash": {
"type": "string",
"description": "First 16 hexadecimal characters of the final file SHA-256"
},
"downloadFileName": {
"type": "string",
"description": "Descriptive filename to use when saving the download"
},
"publicLink": {
"type": [
"null",
"string"
],
"description": "Public source URL (if available)"
},
"size": {
"type": "number",
"description": "Download file size in mebibytes (MiB), calculated as bytes / 1,048,576"
},
"feedId": {
"type": "integer",
"description": "Reference to parent feed"
},
"sha1": {
"type": "string",
"description": "SHA1 checksum"
},
"sha256": {
"type": "string",
"description": "SHA256 checksum"
}
},
"required": [
"extension",
"type",
"creationDate",
"path",
"fileName",
"size"
]
},
"description": "Source-data records for the feed with downloads; empty for restricted feeds"
},
"feedName": {
"type": "string",
"description": "Feed name identifier"
},
"feedGroupName": {
"type": "string",
"description": "Human-readable feed group name"
}
},
"required": [
"feedId",
"feedGroupId",
"dataRequestUrl",
"derivatives",
"feedName",
"feedGroupName"
]
},
"description": "Array of GTFS feeds for the country"
},
"countryUrl": {
"type": "string",
"description": "Country URL slug"
},
"countryRegion": {
"type": "string",
"description": "World region"
}
},
"required": [
"countryIso",
"countryName",
"feeds",
"countryUrl",
"countryRegion"
]
},
"description": "Array of country objects, each containing their available GTFS feeds"
}Response Codes
200
GTFS feeds catalog retrieved successfully400
Invalid country code500
Internal server error