---
title: "`GET /v1/transit/vehicles?bbox=<west>,<south>,<east>,<north>`."
method: GET
path: "/v1/transit/vehicles"
tags: ["transit"]
---

# \`GET /v1/transit/vehicles?bbox=<west>,<south>,<east>,<north>\`.

`GET /v1/transit/vehicles`

## Request

- Base URL: `https://api.mapmap.ai`
- URL: `https://api.mapmap.ai/v1/transit/vehicles`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `api_key`

## Query parameters

- `bbox` string, required
- `operator` string
- `line` string
- `limit` integer

## Response `200`

GeoJSON 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

## Other responses

- `400`: `bbox` missing, malformed, inverted or larger than 4 square degrees; or a malformed `operator`, `line` or `limit`. Not billed
- `401`: Missing or invalid API key
- `429`: Quota or rate limit exceeded
- `501`: Live bus positions not enabled (`SN_TRANSIT_DIR` unset). Not billed

---

[API](https://skmtc.dev/mapmap/apis/sn-gateway.md) · [All operations](https://skmtc.dev/mapmap/apis/sn-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/mapmap/apis/sn-gateway/revisions/2293be8b4c38?raw)
