Map Matching API

Snap noisy GPS traces to the road network with confidence scores

Snap noisy GPS traces to real roads with confidence scores.

How it works

1

Send GPS points

Pass an array of noisy coordinates from a device.

2

Plaza matches them

Hidden Markov model on the full OSM road network.

3

Get snapped route

Clean geometry, road names, and confidence per segment.

See it in action

A real API request, visualized.

terminal
$

          

Who uses this

Teams building with Map Matching API.

Fleet tracking

Clean up vehicle GPS traces for accurate mileage reporting.

Fitness tracking

Snap recorded runs and rides to actual paths and roads.

Ride-hailing

Reconstruct driver routes from sparse phone GPS pings.

Start building

curl -X POST "https://plaza.fyi/api/v1/map-match" \
-H "Content-Type: application/json" \
-d '{
"coordinates": [
[13.388860, 52.517037],
[13.397634, 52.529407],
[13.428555, 52.523219]
]
}'
View endpoints
Method Path Description
POST /api/v1/map-match Snap a GPS trace to the road network

How it compares

Google: $10/1K requests (Roads API)
Plaza: from $1.50/1K
Mapbox: $2/1K requests
Plaza: from $1.50/1K
OSRM: self-host required
Plaza: Managed, no infrastructure to run

Common questions

Is map matching a premium endpoint?

Yes. It counts as 4x against your allocation. Still cheaper than Google's Roads API at $10/1K or Mapbox at $2/1K.

Does map matching return road names?

Yes. The response includes the matched geometry, confidence scores, and the street names and OSM way IDs for each matched road segment.

How many GPS points can I send in one request?

The API handles traces of several hundred coordinates in a single request. For very long traces, consider splitting into segments.

Try it yourself