Isochrone API
Compute realistic travel-time and travel-distance reachability polygon contours across road networks.
Where it's used
Use cases, value and how it works
Overview & Solution
Simple radial circles ignore geographic barriers like rivers, railway lines, one-way streets, and highway divides. The Isochrone API generates accurate geographic catchment polygons depicting everywhere reachable within a given time budget (e.g. "10-minute drive", "30-minute transit").
Industry Use Cases
1. Dark Store & Quick-Commerce Expansion
- 10-Minute Delivery Boundaries: Map exact serviceable delivery polygons to guarantee SLA commitments for grocery and pharmacy fulfillment.
2. Retail Site Selection & Catchment Analysis
- Store Placement: Assess potential customer reach and demographic catchment areas around candidate commercial real estate locations.
3. Emergency Services & Hospital Networks
- Ambulance & Fire Reachability: Audit coverage dead zones to strategically position emergency response vehicles.
API reference
Route and Journey Intelligence APIs · API key only
Quick try
curl -X POST 'https://api-gw.sovereignsolutions.com/gateway/routing/adapter/isochrone?api-key=$API_KEY' \
-H 'Content-Type: application/json' \
-d '{"locations": [{"lat": 30.744014, "lon": 73.990508}], "costing": "auto", "polygons": true, "contours": [{"distance": 5.0, "color": "ff0000"}]}'
Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /routing/adapter/isochrone | Isochrone API - by distance |
POST | /routing/adapter/isochrone | Isochrone API - by travel time |
Isochrone API - by distance
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
locations | body | array | - | Starting point. |
locations[] | body | object | - | |
locations[].lat | body | number | - | Latitude of the point, decimal degrees. |
locations[].lon | body | number | - | Longitude of the point, decimal degrees. |
costing | body | string | - | Travel mode used for costing. The examples use auto (driving) and pedestrian (walking). |
polygons | body | boolean | - | true returns polygons. |
contours | body | array | - | Limits to compute - one polygon each. |
contours[] | body | object | - | |
contours[].distance | body | number | - | Distance limit for this contour. |
contours[].color | body | string | - | Hex colour (without #) to tag the polygon with. |
{
"locations": [
{
"lat": 30.744014,
"lon": 73.990508
}
],
"costing": "auto",
"polygons": true,
"contours": [
{
"distance": 5.0,
"color": "ff0000"
}
]
}
Response
{
"features": [
{
"properties": {
"fill-opacity": 0.33,
"fillColor": "#ff0000",
"opacity": 0.33,
"fill": "#ff0000",
"fillOpacity": 0.33,
"color": "#ff0000",
"contour": 5,
"metric": "distance"
},
"geometry": {
"coordinates": [
[
[
73.990508,
30.744847
],
[
73.989841,
30.744681
],
[
73.989675,
30.744014
],
[
73.989841,
30.743347
],
[
73.990508,
30.743181
],
[
73.991175,
30.743347
],
[
73.991341,
30.744014
],
[
73.991175,
30.744681
],
[
73.990508,
30.744847
]
]
],
"type": "Polygon"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Response fields (19)
| Field | Type | Description |
|---|---|---|
features | array | One polygon per contour. |
features[] | object | |
features[].properties | object | |
features[].properties.fill-opacity | number | Suggested fill opacity. |
features[].properties.fillColor | string | Fill colour, for rendering. |
features[].properties.opacity | number | Suggested opacity. |
features[].properties.fill | string | Fill colour, for rendering. |
features[].properties.fillOpacity | number | Suggested fill opacity. |
features[].properties.color | string | Colour you requested, for rendering. |
features[].properties.contour | integer | The contour value this polygon represents. |
features[].properties.metric | string | distance or time. |
features[].geometry | object | |
features[].geometry.coordinates | array | Polygon rings of [longitude, latitude] points. |
features[].geometry.coordinates[] | array | |
features[].geometry.coordinates[][] | array | |
features[].geometry.coordinates[][][] | number | |
features[].geometry.type | string | |
features[].type | string | |
type | string | Always FeatureCollection. |
Errors: non-2xx responses use the standard status codes listed on Errors.
Isochrone API - by travel time
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
locations | body | array | - | Starting point. |
locations[] | body | object | - | |
locations[].lat | body | number | - | Latitude of the point, decimal degrees. |
locations[].lon | body | number | - | Longitude of the point, decimal degrees. |
costing | body | string | - | Travel mode used for costing. The examples use auto (driving) and pedestrian (walking). |
polygons | body | boolean | - | true returns polygons. |
contours | body | array | - | Limits to compute - one polygon each. |
contours[] | body | object | - | |
contours[].time | body | number | - | Travel-time limit for this contour. |
contours[].color | body | string | - | Hex colour (without #) to tag the polygon with. |
{
"locations": [
{
"lat": 30.744014,
"lon": 73.990508
}
],
"costing": "pedestrian",
"polygons": true,
"contours": [
{
"time": 15.0,
"color": "ff0000"
}
]
}
Response
{
"features": [
{
"properties": {
"fill-opacity": 0.33,
"fillColor": "#ff0000",
"opacity": 0.33,
"fill": "#ff0000",
"fillOpacity": 0.33,
"color": "#ff0000",
"contour": 15,
"metric": "time"
},
"geometry": {
"coordinates": [
[
[
73.990508,
30.744952
],
[
73.989633,
30.744889
],
[
73.989633,
30.743139
],
[
73.991383,
30.743139
],
[
73.991383,
30.744889
],
[
73.990508,
30.744952
]
]
],
"type": "Polygon"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Response fields (19)
| Field | Type | Description |
|---|---|---|
features | array | One polygon per contour. |
features[] | object | |
features[].properties | object | |
features[].properties.fill-opacity | number | Suggested fill opacity. |
features[].properties.fillColor | string | Fill colour, for rendering. |
features[].properties.opacity | number | Suggested opacity. |
features[].properties.fill | string | Fill colour, for rendering. |
features[].properties.fillOpacity | number | Suggested fill opacity. |
features[].properties.color | string | Colour you requested, for rendering. |
features[].properties.contour | integer | The contour value this polygon represents. |
features[].properties.metric | string | distance or time. |
features[].geometry | object | |
features[].geometry.coordinates | array | Polygon rings of [longitude, latitude] points. |
features[].geometry.coordinates[] | array | |
features[].geometry.coordinates[][] | array | |
features[].geometry.coordinates[][][] | number | |
features[].geometry.type | string | |
features[].type | string | |
type | string | Always FeatureCollection. |
Errors: non-2xx responses use the standard status codes listed on Errors.