# Mapbox Map Matching

> Mapbox Map Matching is a paid API for AI agents from Mapbox at mapbox.mpp.paywithlocus.com, paid per call via MPP, $0.005/call, status unknown (last checked 2026-10-11).

Snaps noisy GPS traces or raw coordinates to the most likely roads on a map using Mapbox routing profiles

## Facts

- Endpoint: POST https://mapbox.mpp.paywithlocus.com/mapbox/map-matching?utm_source=zero.xyz
- Price: $0.005/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Provider: Mapbox
- Docs: https://docs.mapbox.com/api/
- Website: https://www.mapbox.com
- Tags: maps, geocoding, directions, routing, geospatial, data
- Canonical page: https://www.zero.xyz/c/mapbox-map-matching-7bf8d151
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_KliGRPBVSf_pxYBpcenq4

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mapbox-map-matching-7bf8d151 -d '<json body>'
```

Example prompt: Take these GPS coordinates from my drive and snap them to the actual roads using the mapbox/driving profile: -122.4194,37.7749; -122.4180,37.7760; -122.4165,37.7775 — give me the full geometry with turn-by-turn steps and distance annotations.

## When to prefer this

Use this endpoint when you have raw GPS traces or sequences of coordinates that need to be aligned to actual road or path networks — e.g. correcting GPS drift from a vehicle tracker, visualizing a recorded trip on a map, or preparing navigation data for analysis. Prefer this over the Directions endpoint when you have observed position data rather than origin/destination pairs you want to route between.

## Known failure modes

- Coordinates too far from any road (>50m radius) — no match found
- Fewer than 2 or more than 100 coordinates provided — validation error
- Invalid routing profile string — bad request
- Timestamps not monotonically increasing — matching error
- Coordinates not semicolon-separated in correct lon,lat format — parse error

## How this service works

Snap GPS traces to the road network. Corrects noisy GPS data into clean routes.

## Output

Returns a road-snapped route geometry (as GeoJSON, polyline, or polyline6) with matched waypoints, optional turn-by-turn navigation steps, and annotations such as distance, duration, speed, or congestion for each segment along the corrected path.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "profile",
  "coordinates"
 ],
 "properties": {
  "tidy": {
   "type": "boolean",
   "description": "Clean up coordinate clusters for better matching"
  },
  "steps": {
   "type": "boolean",
   "description": "Include turn-by-turn instructions"
  },
  "profile": {
   "type": "string",
   "description": "Routing profile: mapbox/driving, mapbox/driving-traffic, mapbox/walking, mapbox/cycling"
  },
  "overview": {
   "type": "string",
   "description": "Geometry detail: full, simplified, false"
  },
  "radiuses": {
   "type": "string",
   "description": "Semicolon-separated search radius per coordinate (0-50 meters)"
  },
  "geometries": {
   "type": "string",
   "description": "Response format: geojson, polyline, polyline6"
  },
  "timestamps": {
   "type": "string",
   "description": "Semicolon-separated Unix timestamps per coordinate"
  },
  "annotations": {
   "type": "string",
   "description": "Comma-separated: distance, duration, speed, congestion, maxspeed"
  },
  "coordinates": {
   "type": "string",
   "description": "Semicolon-separated lon,lat pairs (2-100 coordinates)"
  }
 },
 "additionalProperties": true
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mapbox-map-matching-7bf8d151/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mapbox.mpp.paywithlocus.com](https://www.zero.xyz/host/mapbox.mpp.paywithlocus.com/llms.txt)
