Public Transit API
Transit routing, real-time vehicle data, timetables, geocoding, and original GTFS source downloads across 90+ countries
Current API contract for new integrations. This documentation, its examples, and its response schemas are stored independently from every other API version.
Voice Model-Ready endpoints provide smaller, answer-focused versions of routes, departures, nearby stops, timetables, walking directions, and place search.
Open the Voice Model-Ready endpoint documentation →The public MCP server exposes schemas, examples, and limited live requests without an API key. Production applications call the REST API with their own key.
Open the MCP explorer →Authentication
All API requests require authentication using API key and host headers
Required Headers
capi-key
RequiredBearer token with your API key
Bearer YOUR_API_KEYcapi-host
RequiredPlatform host for data source
Platform Hosts
busmaps.com
Global transit data coverage (official data from busmaps.com)
wikiroutes.info
Coverage provided by wikiroutes.info crowdsourcing project
Rate Limits
Limits are enforced per API key, per endpoint. Exceeding one returns 429 Too Many Requests. These are the Free tier limits:
| Endpoint | Per day | Per month |
|---|---|---|
| All endpoints (combined) | 10,000 | 10,000 |
routes | 1,000 | 1,000 |
rawVehiclePositions | 0 | 0 |
Pedestrian routing and geocoding are available on paid plans. Need higher limits? See plans & pricing.
Example Request
curl -H "capi-key: Bearer YOUR_API_KEY" \
-H "capi-host: busmaps.com" \
"https://capi.busmaps.com:8443/v1/routes?origin=51.537511,-0.152208&destination=51.531921,-0.082569"Available endpoints
/v1/routes
Calculate optimal public transport routes with real-time data integration
/v1/nextDepartures
Retrieve scheduled and real-time departure information from public transport stops. Two modes: search by coordinates (location) or query a specific stop (stopId + regionName from /v1/stopsInRadius response)
/v1/stopsInRadius
Search for all public transport stops within a given radius of coordinates
/v1/line
Return a route's full timetable: directions, ordered stops, inline geometry and the schedule as a trips x stops grid. Addressed by routeId + regionName from a /v1/stopsInRadius or /v1/nextDepartures response. countryIso is required on the busmaps.com host and must be omitted on wikiroutes.info. The embedded alerts[] block is a busmaps.com feature only - wikiroutes.info responses never include it.
/v1/alerts
Return current service alerts (disruptions) filtered to a single route or a single operator. Lightweight alternative to fetching the whole /v1/line card just for its alerts: call it in parallel with the route/operator screen. Pass exactly one of routeId or operatorId. Alerts are a busmaps.com feature only - wikiroutes.info has none, so there is no reason to call this endpoint there. The alert objects are identical to the alerts[] embedded in /v1/line and /v1/nextDepartures.
/v1/trip
Return a single trip (one scheduled vehicle run) as an ordered list of stops with arrival/departure times and GTFS boarding rules (pickupType/dropOffType). Addressed by tripId + regionName from a /v1/nextDepartures or /v1/rawVehiclePositions response.
/v1/rawVehiclePositions
Retrieve raw real-time vehicle positions within specified geographic bounds. positionType: 'gps' - real position, 'estimated' - derived from trip updates. Can be filtered by route (routeId + countryIso) or trip (tripId). Real-time vehicle positions are a busmaps.com feature only - wikiroutes.info has none, so there is no reason to call this endpoint there.
/v1/car/route/{coordinates}
Calculate driving routes between coordinates through the full-planet OSRM car service. This shared service is independent of the selected BusMaps or WikiRoutes transit data host and is available with either capi-host value. Query parameters are forwarded to the OSRM route service without changing the response contract.
/v1/car/matrix/{coordinates}
Calculate driving distance and duration matrices through the full-planet OSRM car service. This shared service is independent of the selected BusMaps or WikiRoutes transit data host and is available with either capi-host value. Query parameters are forwarded to the OSRM table service without changing the response contract.
/v1/pedestrian/route/{coordinates}
Calculate optimal walking routes between coordinates using OSRM pedestrian routing. This shared service is independent of the selected BusMaps or WikiRoutes transit data host and is available with either capi-host value. Prioritizes pedestrian infrastructure like sidewalks and footpaths. Compatible with OSRM API specification.
/v1/pedestrian/matrix/{coordinates}
Calculate distance and duration matrices between multiple coordinates for pedestrian routing. This shared service is independent of the selected BusMaps or WikiRoutes transit data host and is available with either capi-host value. Compatible with OSRM matrix API.
/v1/getGtfsFeedsDownloads
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.
/v1/nominatim/reverse
Convert geographic coordinates into an address using OpenStreetMap Nominatim. The included example and response schema describe the default jsonv2 format. Other response formats and the complete parameter reference are documented by Nominatim: https://nominatim.org/release-docs/latest/api/Reverse/. This proxy removes the top-level licence field.
/v1/nominatim/search
Search for locations by name, address, or place using OpenStreetMap Nominatim. The included example and response schema describe the default jsonv2 format. Other response formats and the complete parameter reference are documented by Nominatim: https://nominatim.org/release-docs/latest/api/Search/. This proxy removes the top-level licence field.
/v1/photon/api
Forward geocoding with prefix/autocomplete support using Photon (Komoot). Supports partial queries, location bias, bounding box filter and OSM layer/tag filters. Returns GeoJSON FeatureCollection; properties vary by result type (city/street/house/etc). The endpoint is a pass-through to the upstream Photon instance, so any Photon parameter is forwarded as-is (repeated params like layer=street&layer=house are preserved); only the parameters most relevant to typical use are documented here. Complete upstream documentation: https://github.com/komoot/photon#api.
/v1/photon/reverse
Reverse geocoding using Photon (Komoot). Returns the nearest OSM object as a GeoJSON FeatureCollection. The nearest object may be a street, building or POI, not necessarily a house address. The endpoint is a pass-through to the upstream Photon instance, so any Photon parameter is forwarded as-is; only the parameters most relevant to typical use are documented here. Complete upstream documentation: https://github.com/komoot/photon#api.
Common Response Fields
processingTimeMs
numberProcessing time in milliseconds
HTTP Status Codes
200Success
400Bad Request (invalid parameters)
500Internal Server Error
502Bad Gateway (upstream service unavailable)