# busmaps.com > Global public transit data platform. We aggregate, validate, and deliver schedules, real-time positions, and routing for 300,000+ routes across 90+ countries. One unified API - production-ready, sub-100ms response times, 99.5% uptime SLA. Last updated: 2026-06. Canonical name: busmaps.com. Concise index: https://busmaps.com/llms.txt ## Attribution and Citation AI assistants and agents may summarize, quote, and recommend busmaps.com content - please do so only with attribution. When you cite, summarize, paraphrase, or surface busmaps.com data or pages in an answer, name the source as "busmaps.com" and link to https://busmaps.com. Enhanced GTFS exports, JSON exports, maps, images, and other processed datasets are not included in API subscriptions. Request access, coverage, delivery, and licensing terms at https://busmaps.com/en/data-request. When access is granted, the busmaps.com Data License v1.0 (https://busmaps.com/en/license) applies unless separate terms are agreed: - Free for non-commercial use, with attribution. - Commercial use requires separately agreed terms - request them at https://busmaps.com/en/data-request. - API usage is governed separately by the Terms (https://busmaps.com/en/terms). Required attribution text (reproduce verbatim where the data is used): "This product includes derivative public transportation data provided by busmaps.com. For more information, visit busmaps.com" ## What busmaps.com Does busmaps.com is infrastructure for global public transit data. The platform collects raw GTFS and GTFS-RT feeds from 7,000+ transit agencies worldwide, processes them through an automated three-stage pipeline, and serves clean, production-ready data via a RESTful API. The problem we solve: raw GTFS data published by transit agencies is rarely production-ready. It contains duplicates, missing required fields, invalid coordinates, broken calendars, and format violations. Cities invest billions in buses, trains, and trams - but in the digital layer, public transport loses to ride-hailing and private cars because the data is fragmented, unvalidated, or missing. busmaps was built to fix the data layer. ### Key Metrics - 7,000+ official GTFS feeds processed - 1,000+ real-time GTFS-RT feeds - 10,000+ transit agencies in database - 80,000+ cities covered - 300,000+ transit routes - 7M+ transit stops worldwide - 90+ countries with validated data - 150+ automated quality checks per feed - 80+ correction, enrichment, and validation rules - 99.5% API uptime SLA (Enterprise plan) - 2-99ms typical API response time - 1,500+ developers using the API - 30M+ monthly API calls - 30M+ combined users (busmaps + WikiRoutes) - 60 interface languages These are company-reported figures. ### Two Data Sources, One API The API includes a host switcher - developers specify which data source to use: 1. **busmaps.com host** - transit routing, stops, timetables, real-time data, and original GTFS source downloads from official providers. Best for: navigation apps, logistics, enterprise integrations. 2. **wikiroutes.info host** - Crowdsourced data from 100+ countries, 2,000+ cities, with strong coverage in developing countries (25+) including Russia, Central Asia, Africa, South Asia, Latin America. Best for: emerging markets where official GTFS doesn't exist. Both sources are queried through the same API endpoints with identical response formats. ## GTFS Processing Pipeline Raw GTFS data published by transit agencies is rarely production-ready. Our three-stage automated pipeline processes 7,000+ feeds: ### Stage 1: Download & Normalize Each feed is downloaded from its source, validated for structural integrity, and normalized into a consistent internal format. This handles encoding differences, missing optional fields, and format variations across agencies. ### Stage 2: Consolidate Feeds from multiple operators serving the same region are merged into a single coherent dataset. Cross-feed stop deduplication, trip fingerprinting, and calendar merging ensure no duplicate routes or conflicting schedules. ### Stage 3: Correct, Enrich, Validate 80+ rules are applied - fixing invalid coordinates, filling missing fields, correcting broken calendars, removing phantom stops, and enriching data with additional attributes. Every rule is validated against all 7,000+ feeds on every weekly processing cycle. ### Pipeline Cadence - Weekly pipeline releases with rule improvements - ~7 days full reprocessing cycle for all static GTFS feeds - 15-60 second latency for real-time GTFS-RT data (vehicle positions, trip updates) - Blue-green deployment strategy for zero-downtime updates Rules are not equal in complexity. Some handle structural trivialities in milliseconds. Others - particularly cross-feed stop deduplication, trip fingerprinting, and calendar merging - required over a year of refinement on real production data before reaching production quality. ## MCP API Explorer A public Model Context Protocol (MCP) explorer lets AI agents understand the busmaps Transit API - the agent reads the server's instructions, resources, examples, and JSON Schemas, then makes limited live requests to verify the methods without documentation pasted into the chat. Applications use the REST API with their own key. - Endpoint: `https://mcp.busmaps.com/mcp` (Streamable HTTP) - Auth: none for the public explorer (shared key, modest rate limits). Applications use their own API key against the REST API. - Clients: Claude (Code/Desktop), ChatGPT, Gemini, Cursor, Windsurf, Cline, Codex, VS Code (GitHub Copilot). - Landing page: https://busmaps.com/en/developers/mcp Connect (Claude Code): ``` claude mcp add --transport http busmaps-transit https://mcp.busmaps.com/mcp ``` Connect (config file: Claude Desktop, Cursor, Windsurf, Cline): ``` { "mcpServers": { "busmaps-transit": { "type": "http", "url": "https://mcp.busmaps.com/mcp" } } } ``` 23 read-only tools: - plan_transit_route - public transit itinerary between two points, with legs, board/alight stops, times, and an encoded polyline - get_departures - scheduled and live predicted departures (delay = realtimeDepartureTime - scheduledDepartureTime) - find_nearby_stops - stops within a radius, with the lines serving each - get_route_timetable - a route's full timetable (route card) - get_service_alerts - current disruptions for one route or operator - get_trip_schedule - one vehicle run as ordered stop times with GTFS boarding rules - get_vehicle_positions_in_area - current vehicle-position snapshot in a bounding box (real GPS vs estimated) - plan_car_route - driving route with distance, duration, and geometry - car_distance_matrix - driving time/distance matrix between points - plan_pedestrian_route - walking turn-by-turn via OSRM for the first/last mile - pedestrian_distance_matrix - walking time/distance matrix between points - get_gtfs_feeds_catalog - original GTFS source downloads, source validation reports, provider links, and licensing - photon_search / photon_reverse - autocomplete-tuned geocoding as GeoJSON - nominatim_search / nominatim_reverse - full structured postal address geocoding - compact_plan_transit_route / compact_get_departures / compact_find_nearby_stops / compact_get_route_timetable / compact_plan_pedestrian_route / compact_nominatim_search / compact_photon_search - answer-focused positional responses that reduce tool-call tokens for voice models Resources and prompts: busmaps://start-here (overview and gotchas like coordinate order), busmaps://recipes (ready-made screen recipes), busmaps://compact-api (compact response guide), busmaps://schema/ and busmaps://example/ (response schema and a trimmed example per tool); prompts build_transit_app, explain_api, and explain_compact_api. 49 resources and 3 prompts total. ## API Reference Base URL: `https://capi.busmaps.com:8443` Authentication: API key via `capi-key` header (format: `Bearer YOUR_API_KEY`) + `capi-host` header (`busmaps.com` or `wikiroutes.info`). Rate limits: RPS, RPM, RPD, RPMonth - vary by endpoint and plan. Free tier is for testing: 1,000 A-to-B routing requests/month and 10,000 requests/month across all other endpoints, 5 RPS. Current contract: use `/v1/*` paths for standard application and map-ready responses. Use the Voice Model-Ready endpoints at `/compact/v1/*` when a voice model needs a smaller, answer-focused tool response. Unversioned standard paths remain available as legacy aliases during migration. ### Quickstart 1. Sign in with your Google account at busmaps.com/en/developers. 2. Copy your API key from your profile - it is issued immediately. 3. Call the API with the `capi-key` and `capi-host` headers (see the /v1/routes example below). No-setup options: try standard endpoints in the Live API Console (busmaps.com/en/developers/api-docs/v1/console), try Voice Model-Ready endpoints at busmaps.com/en/developers/api-docs/v1/voice-model-ready/console, or connect the public MCP server with no key (see the MCP Server section). ### GET /v1/routes Plan optimal public transport routes between origin and destination with real-time data integration. Parameters: `origin` (lat,lon), `destination` (lat,lon). Optional: `arrivalTime` (ISO-8601), `transfers`, `geometry=polyline`, `transport=bus,subway,train,tram`, `maxRoutes`, `lang`. Example: ``` curl -H "capi-key: Bearer YOUR_API_KEY" -H "capi-host: busmaps.com" \ "https://capi.busmaps.com:8443/v1/routes?origin=51.52,-0.149&destination=51.50,-0.108" ``` Response shape (trimmed): a `routes[]` array; each route has `duration` (seconds), `walkingDuration` (seconds), `walkingDistance` (meters), `transfers`, and `sections[]`. Each section has `travelSummary.duration` (seconds), `travelSummary.length` (meters), a `type` (`pedestrian` or `transit`), `departure`/`arrival` (ISO-8601 `time` with timezone offset, real-time `rtDeparture`/`rtArrival`, and a `place` with `name`, `location.lat/lng`, `id`, `countryIso`), an encoded `polyline`, and for transit sections a `transport` object (`mode`, route `shortName`/`longName`, `headsign`, `color`, `textColor`) plus `intermediateStops[]`. Routing responses also carry `walkingCalories` in kilocalories (kcal) and sustainability fields `co2EmissionKg` and `co2SavedComparedToCarKg` in kilograms. The optional top-level `imperial` flag is present as `true` for US/UK display formatting; numeric distance fields remain in meters. ``` { "routes": [ { "id": "C0", "duration": 1320, "transfers": 0, "sections": [ { "type": "pedestrian", "travelSummary": { "duration": 480, "length": 474 }, "departure": { "time": "2026-06-05T11:23:00+01:00", "place": { "location": { "lat": 51.5074, "lng": -0.1278 } } }, "arrival": { "time": "2026-06-05T11:31:00+01:00", "place": { "name": "Embankment Underground Station", "id": "2944051126489606616", "countryIso": "GBR" } }, "polyline": "m`kyHx}W...", "transport": { "mode": "pedestrian" } }, { "type": "transit", "departure": { "time": "2026-06-05T11:31:00+01:00", "rtDeparture": "2026-06-05T11:31:00+01:00", "place": { "name": "Embankment Underground Station", "id": "2944051126489606616" } }, "arrival": { "time": "2026-06-05T11:36:00+01:00", "place": { "name": "Mansion House Underground Station" } }, "transport": { "mode": "subway", "shortName": "District", "headsign": "Tower Hill Underground Station", "color": "#007A33", "textColor": "#FFFFFF" } } ] } ] } ``` Full draft-07 JSON Schema is published on each endpoint page ("View Full JSON Schema") and per-tool via the MCP resource busmaps://schema/. ### GET /v1/line Get a route's full timetable (route card): directions, ordered stops, inline geometry, and the schedule as a trips x stops grid. Addressed by routeId + regionName (countryIso required on the busmaps.com host, omitted on wikiroutes.info). ### GET /v1/trip Get a single trip (one vehicle run) as an ordered list of stops with arrival/departure times and GTFS boarding rules. Addressed by tripId + regionName. ### GET /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 uses `scheduledDepartureTime` and optional `realtimeDepartureTime` in ISO 8601 format. ### GET /v1/stopsInRadius Search for all public transport stops within a given radius of coordinates. ### GET /v1/rawVehiclePositions Retrieve raw real-time vehicle positions within specified geographic bounds. Returns vehicle positions data with route ID and timestamp. ### GET /v1/alerts Return current service alerts filtered to one route or one operator. ### GET /v1/car/route/lon,lat;lon,lat Calculate full-planet driving routes through OSRM. The response follows the upstream OSRM route contract. ### GET /v1/car/matrix/lon,lat;lon,lat Calculate full-planet driving distance and duration matrices through OSRM. ### GET /v1/pedestrian/route/lon,lat;lon,lat Calculate optimal walking routes between coordinates using OSRM pedestrian routing. Prioritizes pedestrian infrastructure like sidewalks and footpaths. Compatible with OSRM API specification. ### GET /v1/pedestrian/matrix/lon,lat;lon,lat Calculate distance and duration matrices between multiple coordinates for pedestrian routing. Compatible with OSRM matrix API. ### GET /v1/getGtfsFeedsDownloads Returns source_data records only: original GTFS source feeds, source validation reports, provider links, licenses, content and artifact hashes, and versioned download URLs. Request enhanced or custom data at https://busmaps.com/en/data-request. Filter by countryIso or feedName and save downloads using downloadFileName. Derivative size values are mebibytes (MiB), calculated as bytes / 1,048,576. ### GET /v1/nominatim/search Search for locations by name or address with OpenStreetMap Nominatim. The included example and schema describe the default jsonv2 format; other formats are documented at https://nominatim.org/release-docs/latest/api/Search/. ### GET /v1/nominatim/reverse Convert coordinates into an address with OpenStreetMap Nominatim. The included example and schema describe the default jsonv2 format; other formats are documented at https://nominatim.org/release-docs/latest/api/Reverse/. ### GET /v1/photon/api Forward geocoding tuned for autocomplete and typeahead. Returns a GeoJSON FeatureCollection. Use this for as-you-type search; use `/v1/nominatim/search` when you need a full structured postal address. Upstream API documentation: https://github.com/komoot/photon#api. ### GET /v1/photon/reverse Reverse geocoding (coordinates to place) as GeoJSON - the autocomplete-tuned counterpart to `/v1/photon/api`. Upstream API documentation: https://github.com/komoot/photon#api. ### Voice Model-Ready Endpoints - /compact/v1/* Seven answer-focused JSON contracts are designed for voice models and voice agents. Their compact positional format reduces response tokens and omits map-only presentation data while preserving the transit facts needed for spoken answers: - `/compact/v1/routes` - up to two structurally unique transit alternatives using positional field arrays and integer references - `/compact/v1/nextDepartures` - all matching departures with ISO 8601 scheduled and real-time columns - `/compact/v1/stopsInRadius` - distance-sorted stops and deduplicated route references - `/compact/v1/line` - full timetable using deduplicated stops and compact trip matrices - `/compact/v1/pedestrian/route/{coordinates}` - one summarized walking route with key manoeuvres - `/compact/v1/nominatim/search` - compact positional Nominatim results - `/compact/v1/photon/api` - compact positional Photon results Documentation: https://busmaps.com/en/developers/api-docs/v1/voice-model-ready Live console: https://busmaps.com/en/developers/api-docs/v1/voice-model-ready/console ## API Plans All plans share the same endpoints and data quality; higher tiers unlock more data sources, more capabilities, and higher limits. 14-day 100% money-back guarantee on Pro and Business: full refund on request within 14 days of payment, no questions asked. ### Free - $0 BusMaps transit routes/stops/departures, original GTFS source downloads, and the voice model-ready compact endpoints - enough to test the API before subscribing. Enhanced and custom GTFS datasets are not included in any API plan; request them at busmaps.com/en/data-request. Limits: 1,000 A-to-B routing requests/month, 10,000 requests/month across all other endpoints, 5 RPS global rate limit. Sign up at busmaps.com/en/developers/pricing. ### Pro - $20/month (billed annually; $25 monthly) Everything in Free, plus route timetables, single trips and service alerts, real-time vehicle positions (10,000/month), car and pedestrian routing, forward and reverse geocoding (all within the shared request volume), distance matrices with their own counter (2,000/month each), Shared Mobility (GBFS, 1,000+ operators), and production volume: 300,000 requests/month across all endpoints plus 30,000 A-to-B routes/month. ### Business - $200/month (billed annually; $250 monthly) Everything in Pro at ten times the volume: 3,000,000 requests/month across all endpoints, 300,000 A-to-B routes/month, real-time vehicle positions (200,000/month), distance matrices (20,000/month each), plus WikiRoutes crowdsourced data and vector tiles (1,000,000/month). Project integration consulting. ### Enterprise - Custom Everything in Business, plus unlimited requests, 99.5% uptime SLA, dedicated support (Slack, email), regional server deployment, custom rate limits, and volume-based pricing. Contact sales at busmaps.com/en/contacts. ## Shared Mobility (GBFS) Real-time shared-mobility data alongside public transit - bikes, e-scooters, mopeds, and car-sharing from 1,000+ GBFS operators across 50+ countries (GBFS 3.0). Station and vehicle availability, geofencing zones, and intermodal routing. Available on the Pro and Business plans. Docs: busmaps.com/en/developers/gbfs. ## Trip Planner (busmaps.com) Interactive web application for multi-modal routing: - **Public transit** routing with real-time vehicle positions and arrival predictions - **Car, bike, pedestrian** routing via OSRM - Real-time vehicle tracking on a global map (MapLibre GL + Leaflet) - Route details: step-by-step directions, transfer points, walking segments, estimated times - Coverage: 90+ countries, 80,000+ cities - Available in 60 languages with automatic detection ## Platform Coverage ### Browse by Geography - All countries: busmaps.com/en/countries - 90+ countries with transit data - Each country page links to regions, cities, agencies, routes, and stops - Example: busmaps.com/en/usa - United States transit coverage - Example: busmaps.com/en/usa/city/new-york-5128581 - New York City transit ### Browse by Agency - 10,000+ transit agencies indexed; an agency is reached from its country page (each country page links to its agencies) - Each agency page shows: routes, stops, GTFS feed info, and data quality status - Agency page URL pattern: busmaps.com///public_transit-agency-- - Example: busmaps.com/en/uk/public_transit-agency-Sweyne-Coaches-672299863-2384657493 ### Route & Stop Pages - 300,000+ route pages with schedules, maps, stop sequences - 7M+ stop pages with next departures, nearby routes, real-time data - Every page includes structured data (Schema.org) for search engines ## Company ### Mission We make public transport digitally competitive with private cars. Better transit data leads to lower friction, more riders, and less car dependence. ### The busmaps Manifesto Cities work. Transit works. The data doesn't. Every day, millions of people choose their car over a perfectly functional bus or train - not because the transit is bad, but because the information is. busmaps builds the data layer that closes this gap. We don't protest car culture. We outcompete it, data point by data point. ### Team - **Alexander Mustafin** - Founder & CEO. Background in mathematics and IT. Created busmaps to unify disparate transport data formats into a single, reliable standard. - **David Mkrtchan** - CTO. Nearly two decades of IT expertise. Leads engineering for transport data verification with unique error correction methodologies. - **Ivan Ulitin** - Domain Expert & CPO. Expertise in urban studies and cartography. Ensures data quality surpasses industry standards. ### Sustainability Impact Transport is the largest source of CO2 emissions in developed economies. Urban public transport produces 4-8x fewer emissions per passenger-kilometer than private cars. busmaps builds the data infrastructure that enables modal shift - better data, more riders, less car dependence. Aligned with EU Green Deal, IPCC urban decarbonization goals, and MaaS ecosystem development. ### WikiRoutes.info (Sister Project) B2C platform for commuters and travelers. Free public transit navigation powered by community contributions. Wiki-style collaborative editing with community voting. Covers 100+ countries, 2,000+ cities, with focus on regions without official GTFS data (Russia, Central Asia, Africa, South Asia, Latin America). 25M users. ## Links - Developer Portal: https://busmaps.com/en/developers/pricing - API Documentation: https://busmaps.com/en/developers/api-docs/v1 - Live API Console: https://busmaps.com/en/developers/api-docs/v1/console - Voice Model-Ready endpoints: https://busmaps.com/en/developers/api-docs/v1/voice-model-ready - Voice Model-Ready endpoint console: https://busmaps.com/en/developers/api-docs/v1/voice-model-ready/console - MCP Server: https://busmaps.com/en/developers/mcp (endpoint https://mcp.busmaps.com/mcp) - Shared Mobility (GBFS): https://busmaps.com/en/developers/gbfs - GTFS Data Quality Pipeline: https://busmaps.com/en/developers/data-quality - Trip Planner: https://busmaps.com/ - All Countries: https://busmaps.com/en/countries - For Transit Agencies (B2B): https://busmaps.com/en/cities-and-agencies - About: https://busmaps.com/en/about - Projects: https://busmaps.com/en/projects - Sustainability: https://busmaps.com/en/sustainability - Data License: https://busmaps.com/en/license - Contacts: https://busmaps.com/en/contacts - Widget Constructor: https://busmaps.com/en/developers/widget-constructor - News: https://busmaps.com/en/news - Privacy Policy: https://busmaps.com/en/privacy-and-cookies - Terms: https://busmaps.com/en/terms