WayMatrix

Comparison

GraphHopper or us — two OpenStreetMap routing APIs, priced very differently

GraphHopper and this API have more in common than either has with Google. Both route on OpenStreetMap data, both say plainly that they have no live traffic, and both exist because the incumbent’s per-element price is hard to justify for work that doesn’t need traffic.

So this comparison isn’t about data quality. It’s about the shape of the bill, and which of us already speaks the protocol your code uses.

WayMatrix compared with GraphHopper
Feature WayMatrix GraphHopper
How you buy it 1 A monthly allowance of elements A plan with a daily credit ceiling
What a matrix costs 2 One element per pair origins × destinations ÷ 2, or the longer side × 10 — whichever is cheaper
Entry paid plan 3 $29 / month €69 / month
Rate limit 4 5 to 120 requests / minute, by plan 1 to 10 requests / second, by plan
Matrix size per call 5 2,500 on the free tier, up to 90,000 on paid 30 to 200 locations, by plan
Free tier 6 50,000 elements / month 500 credits / day, 5 locations
Live traffic 7 No No
Road data OpenStreetMap OpenStreetMap
Storing results 8 Keep them Client-side, temporarily
Coverage North America Global
Geocoding included 9 Coming soon Yes
  1. This is the difference that matters, and the other rows follow from it. You can't buy more credits for one day. You buy a plan whose daily ceiling you either fit under or don't.

    Back to How you buy it
  2. Both count origin-destination pairs. An element is one origin paired with one destination; a credit is GraphHopper's billing unit. A 30 × 40 matrix is 1,200 elements here and 400 credits there — their own worked example, where the second formula wins.

    Back to What a matrix costs
  3. Their Basic plan allows 5,000 credits a day, and caps a matrix at 30 locations. Ours is a monthly element allowance with no per-day ceiling. It stops at the allowance; upgrade your plan for more.

    Back to Entry paid plan
  4. Theirs is the higher raw rate: 1 to 10 a second is 60 to 600 a minute, against our 5 to 120. It comes with a credit ceiling per minute as well — 100 on Basic, 400 on Standard, 1,000 on Premium, and breaching it answers 429 — and because a matrix costs credits rather than elements, that ceiling is usually what binds first: 1,000 credits a minute does not cover a single 200 by 200 matrix on their cheaper formula. What limits us is the monthly element allowance rather than a per-minute one.

    Back to Rate limit
  5. Ours depends on the plan too: 50 by 50 free, and the full figure on paid plans. Theirs rises with the plan and reaches 10,000 locations on a custom agreement. Below that, a bigger matrix means a bigger plan, not just a bigger request.

    Back to Matrix size per call
  6. GraphHopper: Five locations is a 5 × 5 matrix. It is enough to check that the API responds, but not to test it on your own data.

    Back to Free tier
  7. Their TomTom add-on uses historical traffic patterns and is arranged separately. Neither of us is right for tracking a driver in real time.

    Back to Live traffic
  8. Their terms allow temporary caching in a browser or mobile app, and need a custom agreement to redistribute. Their terms were last revised in 2021. Ours has one caveat: storing and using results internally is always fine, but a database you build from them and publish may carry the share-alike obligation of the ODbL, the Open Database Licence that covers OpenStreetMap data.

    Back to Storing results
  9. WayMatrix: Geocoding is in our development plan. Until then, send coordinates.

    Back to Geocoding included

Figures checked against GraphHopper's own published pages on 2 September 2026. Their prices are in euros, and we haven't converted them: an exchange rate isn't a price.

Checked against 5 published sources on

Which of us you should buy

Come to us if…

  • Your usage is spiky. A month-end batch that needs ten times a normal day's volume fits a monthly allowance but breaks a daily ceiling. You'd be paying for a plan sized for your worst day, every day.
  • You want one large matrix rather than a bigger plan. Our per-request limit comes from your plan, not from a location count that steps up through four price points.
  • You need to keep what you computed. Store the durations, build your own tables, and keep them. Their terms allow temporary caching in a browser or app, and nothing more.
  • You are already speaking the Openrouteservice protocol. Our requests and responses match it. Moving here means changing the base URL; moving to GraphHopper means rewriting the code that calls it.

Choose GraphHopper if…

  • You route outside North America. They cover the whole world; we cover North America only. For routes anywhere else, they are the choice.
  • You want route optimization from the same vendor. Vehicle routing is their strength and it is mature. Buying it from the same company as your routing keeps things simpler.
  • You need geocoding today. They have it. Geocoding is in our development plan, but until it launches you'll need a separate provider for addresses.
  • A daily ceiling suits your traffic better than a monthly one. If your traffic is steady, a daily cap is comfortable and can be cheaper. Spiky traffic is what a daily cap punishes.

Two OpenStreetMap APIs, billed differently.

Neither of us has live traffic, both use the same public map, and both are far cheaper than the incumbent. Work out which kind of bill fits your traffic, and check durations against your own coordinates before you decide.