Comparison
Outgrown the openrouteservice free tier? The protocol is the same
This is a comparison with the API we are compatible with, which makes it the strangest page on this site to write. We are not claiming to be better at routing than openrouteservice. We serve the same protocol on the same map data, and they have been doing it longer and for more of the world.
What we are is a place to go when their hosted free tier stops being enough, which is a specific and fairly common situation with a specific and unwelcome shape: the quota is per endpoint, the matrix bucket is the smallest one, and there is no published paid plan above it.
| Feature | WayMatrix | openrouteservice |
|---|---|---|
| Matrix requests included | 250,000 elements / month, free | 500 requests / day |
| Their quotas are counted per endpoint, not pooled, so the matrix bucket is 500 a day on its own. Directions gets 2,000 and isochrones 500. The widely repeated "2,500 a day" figure belongs to a different plan. | ||
| Matrix size per call | 2,500 on the free tier, up to 90,000 on paid | 3,500 elements |
| Free tier against free tier there is nothing in this — 2,500 elements is a 50 by 50 matrix, and their own documentation illustrates its 3,500 with a 50 by 50 example, which is the same 2,500. The difference is entirely on the paid tiers. Theirs also falls to 25 elements when dynamic arguments are used, a reduction of more than a hundredfold and easy to trip over. | ||
| Paying for more | Priced tiers | No paid plan published |
| Their higher Collaborative allowance is granted on application to humanitarian, academic, governmental and not-for-profit organisations, and carries a non-commercial tag. There is no published route from the free tier to a commercial one. | ||
| Rate limit | Set per tier | 40 matrix requests / minute |
| Both of us rate-limit. Theirs is the tighter of the two on every endpoint we serve. | ||
| What you may do with results | Keep them, indefinitely | Share-alike applies |
| Their terms license results under CC BY-SA 4.0, which reaches whatever you build from them and requires attribution to openrouteservice and HeiGIT specifically. 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. | ||
| Keys in a browser | A restricted key for that purpose | Not permitted |
| Their FAQ states a key belongs to one person and must not be used client-side. Worth knowing before you build a map widget around one. | ||
| Road data | OpenStreetMap, build date in every response | OpenStreetMap |
| Coverage | North America | Global |
| Other endpoints | Matrix, directions, isochrones | Also geocoding, elevation, POIs, optimization |
| They run four services we do not. If your application uses any of them, this comparison is about one part of your bill rather than all of it. | ||
| Support | A person who answers | Community forum |
| Migration effort | Change the base URL | Host and path both changed |
| openrouteservice announced on 28 April 2026 that api.openrouteservice.org is deprecated, cut it to 10% of plan quota on 27 August, and shuts it off on 28 September 2026. The replacement inserts a path segment as well as changing the host — api.openrouteservice.org/v2/matrix becomes api.heigit.org/openrouteservice/v2/matrix — so their own users have a base URL to change regardless of who they route with. Both announcements are linked in the sources above. | ||
openrouteservice figures read from their own plans and restrictions pages on 2 September 2026. Their platform is mid-migration — the old host loses 90% of its quota from 27 August 2026 and stops answering on 28 September — so figures older than those dates deserve suspicion.
Checked against 6 published sources on · re-check before
- openrouteservice plans and access limits Quotas are per endpoint rather than a single daily total, which is the detail most third-party summaries get wrong. This page renders its tables in the browser, so it returns nothing to a plain fetch: re-checking the daily quotas and the per-minute rate limit needs a real browser, and an automated attempt will report an empty page rather than a changed one. Two sources here were re-read on 8 September 2026 — the restrictions page and the quota announcement — and this one could not be. That is why figuresAsOf below still reads 2 September: a partial re-check does not refresh the whole page.
- openrouteservice request restrictions Undated page, re-read on 8 September 2026 and unchanged: matrix 3,500 locations per request and 25 with dynamic arguments, 50 route waypoints, 5 isochrone locations. Their own worked example for the 3,500 figure is 'e.g. 50 x 50', which is 2,500 — the discrepancy is theirs and is the reason this comparison quotes 50 by 50 as the practical ceiling rather than the headline number.
- openrouteservice terms of service Source of the share-alike condition on results and the restriction on client-side keys.
- openrouteservice backend FAQ
- openrouteservice — deprecating api.openrouteservice.org in favour of api.heigit.org Their own announcement of 28 April 2026, and the source of the before-and-after URLs quoted here.
- openrouteservice — reducing the quota of the deprecated API Re-read on 8 September 2026 and unchanged: quota cut to 10% from 27 August 2026, endpoint shut off 28 September 2026.
Which of us you should buy
Stay with openrouteservice if…
- The free tier already covers you. Five hundred matrix requests a day is genuinely plenty for a prototype, an internal tool, or a product with modest traffic. Paying us to do what you are getting free would be a poor trade.
- You use their geocoder, elevation, POIs or optimization. We serve three endpoints and they serve nine. Splitting one application across two providers to save on matrices is rarely worth the complexity.
- You route outside North America. They are global. We are one continent, and that is not a limit we can wave you through.
- Your organisation qualifies for their Collaborative plan. Humanitarian, academic, governmental and not-for-profit work can apply for a much higher allowance at no cost. Apply for that before you consider paying anyone.
- You want the reference implementation. It is their API. We match it, which by definition makes them the thing being matched.
Come to us if…
- You are chunking matrices to fit 3,500 elements. That is a 50 by 50 matrix. The batching and stitching code written to work around it stops being necessary.
- You have hit the ceiling and found nothing above it. There is no published paid tier to move to, and the higher allowance is reserved for non-commercial organisations. If you are a company with growing traffic, that is a dead end rather than a step.
- Share-alike on your results is a problem. Their terms attach CC BY-SA 4.0 to what you compute. If you are building something commercial on top of those numbers, read that clause carefully before you build further.
- You have to edit the base URL either way. openrouteservice shuts off its old host on 28 September 2026, so that line changes whether or not you switch providers. This is the version of the same edit where the ceiling goes up.
The same request, somewhere with more room.
Take a call you already make, change where it points, and compare the numbers you get back. Nothing else in your code has to move, and the free allowance is enough to check a quarter of a million pairs before you decide.
client.py
Removed: - base_url = "https://api.openrouteservice.org"
Added: + base_url = "https://api.waymatrix.io" headers = {"Authorization": API_KEY} The header shape is theirs too: a raw key with no Bearer prefix, which is what their client libraries send.