PreviewThis is a preview. The API is not open yet, the addresses in these examples do not serve traffic, and nothing here is a commitment.

WayMatrix
Sign in (not available yet)Get an API key (not available yet)

Comparison

A Google Distance Matrix alternative for teams that don't need live traffic

Most products that call a distance matrix API are not tracking a driver in real time. They are scoring options: which technician is closest, which warehouse should serve this order, which listings are inside a thirty-minute commute. That work does not need traffic, and it is where the per-element price is doing all the damage.

Every figure below was checked against the vendor’s own published pages rather than against a comparison someone else wrote — including the cases where we are the wrong choice.

WayMatrix compared with Google Routes, GraphHopper, openrouteservice
Feature WayMatrixGoogle RoutesGraphHopperopenrouteservice
Matrix price ~$0.50 / 1k elements $5.00 / 1k elements No per-call price No paid tier
Google's figure is the Essentials tier for the first 100,000 elements a month; a traffic-aware request bills at the Pro tier, $10.00 per 1,000. GraphHopper sells monthly plans capped in daily credits rather than metering calls, and a matrix costs origins × destinations ÷ 2 credits. openrouteservice publishes no paid plan at all.
Live traffic No Yes — the reason to pay No No
GraphHopper offers historic traffic through a paid TomTom add-on, not live conditions.
Matrix size per call 2,500 on the free tier, up to 90,000 on paid 625 elements, or 100 with traffic Up to 200 locations 3,500 elements
Ours is the only figure here that is per tier rather than per API, so the free tier caps at 50 by 50 and the large number is a paid one. Google's 625-element ceiling drops to 100 when you ask for its most accurate traffic mode. GraphHopper's location limit rises with the plan. openrouteservice's ceiling falls to 25 elements when dynamic arguments are used.
Free allowance 250,000 elements / month 10,000 elements / month 500 credits / day 500 matrix requests / day
Google replaced its $200 monthly credit with a free threshold per product in March 2025; the 10,000 applies to the Essentials tier alone. openrouteservice's free quota is per endpoint, and 500 a day is the matrix bucket specifically.
Storing results Keep them, indefinitely Not permitted Client-side, temporarily Permitted under CC BY-SA 4.0
Google's terms permit caching latitude and longitude values for 30 days; they do not permit storing the durations or distances themselves. openrouteservice licenses its results under a share-alike licence, which reaches anything you build from them. Ours has one caveat we would rather state here than in a footnote: internal storage and use are unconditionally fine, but a database you assemble from these results and then publicly redistribute may itself carry the ODbL's share-alike obligation.
Road data OpenStreetMap, build date in every response Proprietary, continuously updated OpenStreetMap OpenStreetMap
Coverage North America Global, varying by country Global Global
Geocoding included No — bring coordinates Yes, billed separately Yes Yes
Drop-in for ORS clients Yes — same request shapes No No It is the reference
openrouteservice retires its api.openrouteservice.org host on 28 September 2026, and requests sent there already get 10% of plan quota. Its replacement changes the host and inserts a path segment, so its own users have a base URL to edit too.

Figures checked against each vendor's own published pages on 2 September 2026. Everyone here changes their pricing; check theirs before you commit to anything.

Checked against 10 published sources on · re-check before

Which of us you should buy

Stay with Google if…

  • A driver is moving right now. Live ETAs on an in-progress delivery, arrival countdowns shown to a customer — traffic is the product, and we do not have it.
  • You need one vendor for everything. Autocomplete, places, geocoding, Street View, and routing on one bill and one contract has real organisational value.
  • You route outside North America today. We are one continent. That is not a soft limit we can wave you through.
  • Procurement needs a name they know. A fair reason, and not one we will argue you out of.

Come to us if…

  • Your matrix bill is the line item you keep flinching at. Ten times cheaper per element than Google's entry tier, and twenty times cheaper than the traffic-aware tier, on the call that generates almost all of it.
  • You are chunking matrices to fit a cap. Six hundred and twenty-five elements is a 25 × 25 matrix. The retry-and-stitch code you wrote to work around that stops being necessary.
  • You need to keep what you computed. Cache the durations, build your own tables, store them for as long as you like. Google's terms do not allow it and openrouteservice attaches share-alike to its results.
  • You have outgrown the openrouteservice free tier. Five hundred matrix requests a day is a fine place to prototype and nowhere to launch, and there is no paid plan above it to move to. Same protocol, a much higher ceiling.

Try it against your real numbers.

Take one matrix you already send somewhere else, point it here, and compare the durations yourself. The free tier is enough to check a quarter of a million pairs before you decide anything.

Get a free API key (not available yet)Read the Google migration guideOpen the playground

migrate.diff

Removed: - POST https://api.openrouteservice.org/v2/matrix/driving-car
Added: + POST https://api.waymatrix.io/v2/matrix/driving-carAuthorization: $API_KEY
{"locations": [...], "metrics": ["duration","distance"]}

Coming from Google instead? That is a different API rather than a different hostname — the Google migration guide above maps every field, and three of its seven steps are code you delete.