N S W E
A B
OSRM · v5.27 · Global coverage

Routing, charted with the precision of an old-world cartographer.

A turn-by-turn directions API built on OSRM. Sub-second responses, 99.98% uptime, 222 countries. The shortest path between two points — engineered for production.

Scroll
99.98%
Uptime SLA
180ms
Median response
222
Countries
4.2B
Routes / month
Live, in your browser

Route between any two
points on Earth.

Type a start and an end. Nominatim resolves the names to coordinates, OSRM computes the driving route, and the map draws it in real time. Drag the markers to reroute. This is the same engine your production traffic hits.

Plan a route
OSRM live
A From
B To
Try a preset
Distance
Duration
Turn-by-turn directions
Live OSRM · driving profile
© OpenStreetMap · CARTO · OSRM
What you get

An API that behaves like infrastructure, not a hack.

99.98% Uptime, measured monthly
01 / Reliability

Built to be the thing you forget about.

Triple-redundant OSRM instances per region, hot failover under 200ms, monthly uptime reports audited by an external probe. When your pager goes off at 3am, it will not be us.

Status: operational View status page →
180ms p50 route response
02 / Speed

Sub-second responses, even at peak.

OSRM running on bare-metal in seven regions, OSM data refreshed every 48 hours, multi-layer caching for repeat queries. p99 under 800ms — including geocoding.

7 regions · 48h refresh Read architecture →
222 Countries, driving profile
03 / Coverage

The whole planet, charted.

Driving, cycling, walking, and truck profiles. We ingest the full OpenStreetMap planet file every 48 hours and serve every country with the same low latency — no surcharges for "remote" regions.

4 profiles · 48h refresh See coverage →
$0 To start, free tier forever
04 / Pricing

Pricing you can forecast against.

Per-route pricing that drops with volume. No setup fees, no minimum commit, no surcharge for "premium" features. The free tier covers 5,000 routes a month — enough to prototype, enough to launch.

5,000 free routes / month See pricing →
Documentation

Three lines to your
first route.

RESTful JSON API over HTTPS. One endpoint for routing, one for geocoding, one for matrix. No SDK required — but we ship them anyway for JavaScript, Python, Go, and Ruby.

# Calculate a driving route from Paris to Berlin
curl "https://api.meridian-routing.com/v1/route" \
  -H "Authorization: Bearer $MERIDIAN_KEY" \
  -d 'coordinates=2.3522,48.8566;13.4050,52.5200' \
  -d 'profile=driving' \
  -d 'steps=true' \
  -d 'overview=full' \
  -d 'geometries=geojson'
// npm install @meridian/routing
import { Meridian } from '@meridian/routing';

const client = new Meridian({ apiKey: process.env.MERIDIAN_KEY });

const route = await client.route({
  coordinates: [[2.3522, 48.8566], [13.4050, 52.5200]],
  profile: 'driving',
  steps: true,
  geometries: 'geojson'
});

console.log(route.routes[0].distance);  // meters
console.log(route.routes[0].duration);  // seconds
# pip install meridian-routing
from meridian import Meridian

client = Meridian(api_key=os.environ["MERIDIAN_KEY"])

route = client.route(
    coordinates=[(2.3522, 48.8566), (13.4050, 52.5200)],
    profile="driving",
    steps=True,
    geometries="geojson",
)

print(route.routes[0].distance)  # meters
print(route.routes[0].duration)  # seconds
POST
/v1/route
Compute a turn-by-turn route between two or more coordinates. Returns geometry, distance, duration, and step-by-step instructions.
coordinates array Lon/lat pairs, semicolon-separated
profile enum driving, cycling, walking, truck
steps bool Include turn-by-turn instructions
geometries enum geojson, polyline, polyline6
POST
/v1/matrix
Compute a many-to-many duration/distance matrix in a single request. Up to 1,000×1,000 sources×destinations.
sources array Origin coordinates
destinations array Destination coordinates
profile enum driving, cycling, walking, truck
annotations array duration, distance, nodes
Example response · truncated 200 OK
{
  "code": "Ok",
  "routes": [
    {
      "geometry": { "type": "LineString", "coordinates": [...] },
      "distance": 1054320.8,
      "duration": 37642.2,
      "legs": [
        {
          "distance": 1054320.8,
          "duration": 37642.2,
          "steps": [
            {
              "maneuver": { "type": "depart", "location": [2.3522, 48.8566] },
              "name": "Rue de Rivoli",
              "mode": "driving",
              "distance": 320.4,
              "duration": 48.2
            },
            ...
          ]
        }
      ]
    }
  ],
  "waypoints": [
    { "name": "Paris, France", "location": [2.3522, 48.8566] },
    { "name": "Berlin, Germany", "location": [13.4050, 52.5200] }
  ]
}
Pricing

Pay for routes, not seats.

No setup fees, no minimum commit, no surcharge for premium features. The free tier is enough to launch. The Pro tier is enough to scale. The Fleet tier is enough to run a logistics company.

Hobby

For prototypes, side projects, and learning the API.

$0 / month
  • 5,000 routes / month
  • 1,000 matrix requests / month
  • All four profiles
  • Community support
  • GeoJSON & polyline output
Start free
Fleet

For logistics platforms with global traffic.

$299 / month
  • 1,000,000 routes / month
  • Dedicated OSRM instances
  • 99.98% uptime SLA
  • Slack channel & phone support
  • Custom OSM data refresh
  • On-premise deployment option
Talk to us
★ MERIDIAN ★ ROUTING ★ EST. 2024 ★

Chart your first route in five minutes.

Sign up, grab an API key, and the free tier covers 5,000 routes a month. No credit card, no sales call, no friction.