Skip to content
Documentation menu
docs / api / get-v1-transit-vehicles
transit

GET/v1/transit/vehicles

API key required, sent as Authorization: Bearer snk_… or ?api_key=snk_….

Call it

bash
curl -fsS -X GET "https://api.mapmap.ai/v1/transit/vehicles?bbox=…" \
  -H "Authorization: Bearer $MAPMAP_KEY"

Parameters

NameInRequiredDescription
bboxqueryyesRequired. west,south,east,north in WGS84 degrees, covering at most 4 square degrees (for example 2 by 2 degrees). A box across the antimeridian is not supported
operatorquerynoOnly this operator's vehicles: a National Operator Code such as TFLO (case-insensitive)
linequerynoOnly vehicles on this line, as riders see it, e.g. 88 (case-insensitive)
limitquerynoMost features to return, 1 to 5000 (default 2000). Past it truncated is true and the features are spread evenly across the matches

Responses

200GeoJSON FeatureCollection of live bus positions inside the box, with feed (freshness: ok, stale past 180 s, or unknown), coverage and the OGL v3.0 attribution. A stale feed still returns its features: staleness is a field, never an error. Display only: no arrival, journey-time or delay prediction
FieldTypeRequiredDescription
attributionstringyesLicence attribution (OGL v3.0), to be shown with the data.
countintegeryesFeatures in this answer.
coveragestringyesWhat the feed covers and what it does not.
featuresTransitVehicleFeature[]yesOne Point feature per vehicle.
feedTransitFeedyesHow fresh the feed is. Read it before drawing positions as live.
generated_atstringnoWhen the box built the snapshot this answer reads (RFC 3339). null before the first snapshot exists.
matchedintegeryesVehicles inside the box that matched the filters, before limit.
recorded_at_maxstringnoThe newest vehicle fix in that snapshot (RFC 3339).
truncatedbooleanyesTrue when matched exceeded limit. The features returned are then spread evenly across the matches (in longitude order), not the westernmost limit of them.
typestringyesAlways FeatureCollection.
400bbox missing, malformed, inverted or larger than 4 square degrees; or a malformed operator, line or limit. Not billed
401Missing or invalid API key
429Quota or rate limit exceeded
501Live bus positions not enabled (SN_TRANSIT_DIR unset). Not billed

Error bodies follow the shared problem model documented on API conventions.

Generated from https://api.mapmap.ai/openapi.json on 2026-10-12 · operationId get_transit_vehicles