Isochrones that show how far is near.

Everything reachable from a point within 10, 20 or 30 minutes, by car, bike or on foot, as a GeoJSON polygon you can draw or test against. One polygon answers a question that would otherwise take a route per customer.

10,000 units free every month. No credit card, no sales call.

Live APIready

Computing…

POST /isochrone/v1 · costing: bicycle · 3 contours

30 min by bike · 3 bands

Where it lands in your product.

Nobody ships an endpoint. They ship a delivery-zone map, a checkout that says yes or no to an address, a dashboard that knows which branch is closest. This is what a reachable area looks like from the outside.

Map of Utrecht with three nested areas reachable by bike from Utrecht Centraal within 10, 20 and 30 minutes

By bike from Utrecht Centraal, one request, three bands

  • 10 min
  • 20 min
  • 30 min
© OpenStreetMap contributors

Draw the delivery zone once.

Ten, twenty and thirty minutes by bike, as three polygons from one request. Put them on the map for your customers, or keep them server-side and test addresses against them at checkout.

Try it in the panel above
Delivery zones · Utrecht Centraal, by bike
  • Leidsche Rijn Centrumwithin 20 min
  • Utrecht Science Parkwithin 30 min
  • De Biltwithin 30 min
  • Maarssen stationwithin 30 min
  • Zeist centreoutside 30 min
  • Houten stationoutside 30 min

Which of these can we reach?

A point-in-polygon check against the bands answers it for every address you have, without a single extra request. These six are real places tested against the real polygons on the left.

The map it lands on

Which customers can we reach within 20 minutes?

0customers checked

One route each

0

units · 1 per route

One isochrone

5

units · then point-in-polygon

One polygon, not a route per customer.

A contour costs five units. Checking two thousand customers by routing to each would cost two thousand. The isochrone is the cheap way to ask a question about many points at once.

See what a month costs
zones.ts
const zones = await rijwind.isochrone({
  locations: [shop],
  costing: 'bicycle',
  contours: [{ time: 20 }],
  polygons: true,
});

// zones.features[0] is plain GeoJSON
map.addSource('reach', { type: 'geojson', data: zones });

Plain GeoJSON, straight onto the map.

The response is a FeatureCollection, so it goes into MapLibre, Leaflet or PostGIS as it is. Ask for polygons to fill, or lines if you only want the outline.

Read the quickstart

One FeatureCollection, ready to draw or to query.

Each band is a GeoJSON feature with its minutes in the properties and the ring in the geometry, largest first. Put it on the map as it is, or load it into PostGIS and let the database do the point-in-polygon work.

  • MapLibre
  • Leaflet
  • OpenLayers
  • deck.gl
  • PostGIS
  • Turf.js
Every field, in the docs ↗
FeatureCollection
  1. {
  2. "type": "FeatureCollection",// plain GeoJSON, one feature per contour
  3. "features": [{// largest first, so they stack when drawn in order
  4. "type": "Feature",
  5. "properties": { "contour": 30, "metric": "time", … },// which band this is: 30 minutes
  6. "geometry": {
  7. "type": "Polygon",// or LineString if you only want the outline
  8. "coordinates": [[[5.1551, 52.147646], [5.153827, 52.146672], …]]// 853 points on this ring, lon then lat
  9. }
  10. }, {
  11. "properties": { "contour": 20, … }, …// 410 points
  12. }, {
  13. "properties": { "contour": 10, … }, …// 113 points
  14. }]
  15. }

The short version.

Everything a developer scans a product page for, in one place, without the adjectives.

IsochronePer origin. Three bands from one point is 15 units.
5 units / contour
Per requestOrigins times contours at most four: 1×4, 2×2 or 4×1.
up to 4 bands
ProfilesEach with its own rules, not a speed multiplier.
car · bike · foot
By time or by distanceMinutes for isochrones, kilometres for isodistances, same call.
both
OutputPolygons to fill, or lines for the outline only.
GeoJSON
Live traffic in the bandsReach comes from the road graph. Rijwind Traffic is a separate map layer.
no
Free tierHard cap. No card, no sales call.
10,000 units / month
Paid plansOne unit pool across maps, geocoding and routing, plus a spending cap you set.
from €5 / month
ProcessingNo US-controlled provider in the request path. DPA and sub-processor list published.
EU, end to end

Numbers as of September 2026. The pricing page has the full ladder.

Isochrones, answered.

What is an isochrone?

A polygon of everything you can reach from a point within a given time: 20 minutes by bike, say. Ask for several times at once and you get nested bands. Ask by distance instead of time and you get an isodistance, which the same endpoint also does.

What is it for?

Delivery and service zones, catchment areas for a shop or a school, 'which of our customers can a courier reach in 30 minutes', and any question about many points that would otherwise need one route per point. Draw the polygon on a map, or keep it server-side and test coordinates against it.

How much does an isochrone cost?

Five units per contour per origin, from the same monthly pool as maps, geocoding and routing. Three bands from one origin is fifteen units. A contour is heavier than a route because it explores the whole road network out to the limit rather than one path through it.

How many bands or origins can one request have?

Up to four contours and up to four origins, as long as origins times contours is at most four. So one origin with four bands, two origins with two bands each, or four origins with one band.

Which travel profiles are supported?

Car, bicycle and pedestrian, each with its own rules. A 20-minute bike band follows cycleways and stops at the motorway; the car band runs down it.

Are the bands traffic-aware?

No. Reach is computed from the road graph (speed limits, road class, surface and turn costs), not from live traffic. Rijwind Traffic is a separate live layer for your map and does not feed into these polygons today.

What shape do the results come back in?

A GeoJSON FeatureCollection with one feature per contour, largest first so they stack when drawn in order. Each feature carries its minutes (or distance) in properties. Ask for polygons to fill an area, or lines if you only want the outline.

Is there a free tier?

Yes. The free plan includes 10,000 units a month with no card and no sales call, which is 2,000 single-band isochrones if that is all you spend them on. It is a hard cap, so a runaway loop cannot produce a bill.

Where are my requests processed?

In the European Union, end to end. No part of the request path touches a US-controlled provider, which is what makes the GDPR and data-residency conversation short. We publish a DPA and a full sub-processor list.

Draw your first zone.

Ten thousand units a month, free. The same key covers maps, search and routing when you get to them.

20 minutes by bike from Utrecht CentraalGet an API key
No credit card. No sales call. A spending cap you set yourself.Read the quickstart