Isochrone API
On this page
The Isochrone API calculates the area you can reach from a point within a given travel time. The result is a polygon you can display on a map.
This is useful for showing delivery zones, service areas, or commute ranges.
Base URL
https://routing.maptoolkit.net/isochroneAuthentication
Add your API key as ?api_key=YOUR_API_KEY to every request. See Authentication for details.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
point | lat,lng | Yes | The starting point. |
time | number | Yes | Travel time in minutes. |
routeType | string | Yes | Vehicle type: car, bike, or foot. |
format | string | No | Set to geojson to get a GeoJSON geometry object. |
tolerance | number | No | Simplifies the outline: higher values in meters give smoother polygons with fewer points. Default depends on travel time and mode; values above time × 3000 m are capped. If the outline shows thin spikes, try 50. |
Response
An array of [lat, lng] coordinate pairs that form a polygon.
GET https://routing.maptoolkit.net/isochrone?point=47.268,11.400&time=10&routeType=bike&api_key=YOUR_API_KEYThis is a response to the HTTP GET request shown above:
[
[
47.27599805,
11.39406835
],
[
47.27524085,
11.3925068
],
[
47.2742211,
11.3920193
],
[
47.2732573,
11.3914051
],
...
]GeoJSON Response
If you set the URL parameter format=geojson the response is a GeoJSON Feature, not a
bare geometry:
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[11.38381165, 47.26794595], [11.38252845, 47.26719565], ...]]
},
"properties": {
"bucket": 0
}
}Two things follow from that. A MapLibre geojson source accepts the response as-is, because
a Feature is valid GeoJSON on its own. Anything that expects a geometry has to read
response.geometry rather than the response itself.
| Field | Description |
|---|---|
type | Always Feature. |
geometry | A Polygon whose coordinates are [lng, lat]. |
properties.bucket | Index of the band this polygon belongs to, counting from 0. A single-time request always returns 0. |
Note: The coordinate order differs between the two response shapes. The GeoJSON geometry
uses [lng, lat], the standard array response uses [lat, lng].
Examples
Working examples for this API, each with copyable source:
MapLibre GL JS



Leaflet



Errors
Errors return the HTTP status code with a plain-text message in the body.
| Status | Meaning |
|---|---|
403 | The API key is missing (Access denied!) or not recognized (Api-key not found!). See First Steps. |
400 | A parameter failed validation, or the routing engine rejected the request. |
Common 400 messages
| Message | Cause |
|---|---|
Missing required parameter: point | point is missing or empty. |
Parameter 'time' must be a positive number | time is not a positive number. |
Parameter 'time' must not exceed 60 minutes | time is above the 60 minute maximum. |
Errors from the upstream routing engine are forwarded as-is.
Rate limits
Limits are monthly request quotas tied to your plan rather than a per-second rate: the
service returns no RateLimit-* or Retry-After headers. Current allowances are on the
pricing page.
The free Basic plan has a hard limit, so requests are refused once it is reached. On Pro and Ultra, requests past the allowance are billed rather than refused. Enterprise plans have no request limit.
Calls to this API count toward your plan’s API request allowance, which is the smaller of the two allowances.
Pricing
Self-service plans (Basic, Pro, and Ultra) are billed through RapidAPI; see RapidAPI for how to subscribe and authenticate. Plan limits and prices are listed on the Maptoolkit pricing page. Enterprise customers call the native hosts directly with a Maptoolkit API key.