Map Matching API

Align recorded GPS tracks to actual roads for fleet analytics and trip replay

How it works

1

Send GPS points

Pass an array of noisy coordinates from a device.

2

Plaza matches them

Hidden Markov model over the OSM road network.

3

Get snapped route

Snapped points, matched edges, and a confidence score.

See it in action

An example request and its response, drawn on the map.

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 "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"geometry": {
"coordinates": [
[
13.38886,
52.517037
],
[
13.397634,
52.529407
],
[
13.428555,
52.523219
]
],
"type": "LineString"
}
}'
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.

What does the response contain?

One snapped point per GPS fix, in order, with its distance from the fix and the road edge it matched, plus one confidence score for the whole match.

How many GPS points can I send in one request?

There's no fixed cap, but every point is looked up on its own, so long traces are slow. Split long recordings into overlapping segments.