Skip to content
Isochrone API

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/isochrone

Authentication

Add your API key as ?api_key=YOUR_API_KEY to every request. See Authentication for details.

Parameters

ParameterTypeRequiredDescription
pointlat,lngYesThe starting point.
timenumberYesTravel time in minutes.
routeTypestringYesVehicle type: car, bike, or foot.
formatstringNoSet to geojson to get a GeoJSON geometry object.
tolerancenumberNoSimplifies 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_KEY

This 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.

FieldDescription
typeAlways Feature.
geometryA Polygon whose coordinates are [lng, lat].
properties.bucketIndex 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.

StatusMeaning
403The API key is missing (Access denied!) or not recognized (Api-key not found!). See First Steps.
400A parameter failed validation, or the routing engine rejected the request.

Common 400 messages

MessageCause
Missing required parameter: pointpoint is missing or empty.
Parameter 'time' must be a positive numbertime is not a positive number.
Parameter 'time' must not exceed 60 minutestime 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.