This quarter, Simple Routing donated to the OpenStreetMap Foundation and the Nature Conservancy. Learn more about our give back program and values.

Map Matching API

Snap noisy GPS traces onto the real road network — clean geometry, accurate mileage, zero infrastructure.

Built on OSRM's map matching service.

✅ No credit card required 🇪🇺 Hosted in the EU 🔓 Open source, no lock-in

Get Free API Key

Always free for small projects. $10/mo covers most apps

What Is Map Matching?

GPS traces are noisy — a phone or telematics device reports points a few meters off the actual road, especially in cities or under tree cover. Map matching takes a sequence of timestamped GPS points and snaps them onto the real road network, returning a clean route geometry plus a confidence score for how well the trace matched. Feed it raw coordinates, get back the road a vehicle actually drove on.

Live Demo

A noisy 6-point GPS trace along Fifth Avenue, Manhattan — snapped onto the road network in real time.

Raw GPS points Matched route
# timestamps are semicolon-separated, one per coordinate, strictly increasing
curl "https://api.simplerouting.io/osrm/match/v1/driving/-73.9819,40.7614;-73.9803,40.7592;-73.9786,40.7569;-73.9769,40.7547;-73.9752,40.7524;-73.9735,40.7501?timestamps=1700000000;1700000030;1700000060;1700000090;1700000120;1700000150&geometries=geojson&radiuses=25;25;25;25;25;25" \
  -H "Authorization: Bearer 988b35cc-6183-4922-bbc0-857e1a1d318d"
Response

            

This is a live demo with a real API key (feel free to steal it).

Inputs & Outputs

📍 Timestamped Points

Send a sequence of lon,lat coordinates plus a matching timestamps array (seconds, strictly increasing). Works with GPS logs from phones, dashcams, or telematics hardware.

🛣️ Matched Geometry

Get back the actual road geometry the trace most likely followed, plus per-leg duration and distance — ready to store or display.

📊 Confidence Score

Each match includes a confidence value (0–1) so you can flag low-quality traces — sparse GPS logs or trips through tunnels and parking garages — for review.

Use Cases

🚚 Fleet Mileage & IFTA

Turn raw telematics GPS logs into accurate per-state mileage for IFTA and fuel-tax reporting, instead of estimating from noisy raw coordinates.

📦 Delivery Proof-of-Route

Show exactly which roads a driver used to complete a delivery — useful for dispute resolution and route-compliance audits.

🧹 Telematics Data Cleanup

Clean up jittery GPS traces before storing them or feeding them into downstream analytics — snap-to-road first, analyze second.

🧠 Driver Behavior Analysis

Once traces are matched to real roads, speed and route-adherence metrics are far more reliable than working from raw GPS pings.

Quick Start

Standard OSRM Match Service format — coordinates and timestamps as parallel arrays:

# /osrm/match/v1/{profile}/{coordinates}?timestamps={timestamps} — semicolon-separated
curl "https://api.simplerouting.io/osrm/match/v1/driving/-73.9819,40.7614;-73.9803,40.7592?timestamps=1700000000;1700000030&geometries=geojson&radiuses=25;25" \
  -H "Authorization: Bearer YOUR_API_KEY"
Get Free API Key

Pricing

Free
$0/forever
  • 100 requests/dayiMax 5 req/s
    • Counted per call, not per element
  • Distance matrix, maplines, turn by turn, isochrone APIs
    • OSRM and Valhalla
  • Fleet optimization API
    • VROOM
  • Bicycle, car, HGV profiles iCar only for OSRM
  • North America & Europe coverage
  • No credit card required
Get Free API Key
Scale
$100/month
  • 200,000 requests/dayiMax 20 req/s
    • Counted per call, not per element
  • Distance matrix, maplines, turn by turn, isochrone APIs
    • OSRM and Valhalla
  • Fleet optimization API
    • VROOM
  • Bicycle, car, HGV profiles iCar only for OSRM
  • North America & Europe coverage
  • Cancel anytime
Get Started

No overages — your plan is your bill.

Hitting the limits, want more countries, or need a bespoke solution? Email [email protected] — we'll figure it out.

🎓
Education, non-profit, or open source? We offer discounted rates — email [email protected] to connect.

Global Stats

4.1M+
Requests served
99.99%
Uptime
260+
Developers building on the platform

FAQ

How many points can I send in one request?

Match requests follow the same size limits as the standard OSRM Match Service. For most fleet and delivery traces (a single trip's worth of GPS pings), you're well within range on any tier.

What if my trace has gaps or bad GPS fixes?

The match service is built to tolerate noisy or sparse traces — check the per-match confidence score in the response to identify traces that need a closer look.

Is this the standard OSRM Match Service format?

Yes. /match/v1/{profile}/{coordinates}?timestamps={timestamps} — if you're already calling a self-hosted OSRM instance, switching is a one-line URL change plus an Authorization header.

Ready to start?

Get your free API key — no credit card required.

Get Free API Key