Isochrone API
Compute realistic travel-time and travel-distance reachability polygon contours across road networks.
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
Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /routing/adapter/isochrone | Isochrone API - by distance |
POST | /routing/adapter/isochrone | Isochrone API - by travel time |
All requests need only your API key, as the api-key query parameter - no bearer token:
?api-key=<apiKey>
Isochrone API - by distance
POST /routing/adapter/isochrone
Base URL: https://api-gw.sovereignsolutions.com/gateway
Request Parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | body | array | No | Starting point. | |
locations[] | body | object | No | ||
locations[].lat | body | number | No | Latitude of the point, decimal degrees. | |
locations[].lon | body | number | No | Longitude of the point, decimal degrees. | |
costing | body | string | No | Travel mode used for costing. The examples use auto (driving) and pedestrian (walking). | |
polygons | body | boolean | No | true returns polygons. | |
contours | body | array | No | Limits to compute - one polygon each. | |
contours[] | body | object | No | ||
contours[].distance | body | number | No | Distance limit for this contour. | |
contours[].color | body | string | No | Hex colour (without #) to tag the polygon with. |
Request body
{
"locations": [
{
"lat": 30.744014,
"lon": 73.990508
}
],
"costing": "auto",
"polygons": true,
"contours": [
{
"distance": 5.0,
"color": "ff0000"
}
]
}
Response Schema
200 OK
{
"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"
}
| 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. |
Isochrone API - by travel time
POST /routing/adapter/isochrone
Base URL: https://api-gw.sovereignsolutions.com/gateway
Request Parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | body | array | No | Starting point. | |
locations[] | body | object | No | ||
locations[].lat | body | number | No | Latitude of the point, decimal degrees. | |
locations[].lon | body | number | No | Longitude of the point, decimal degrees. | |
costing | body | string | No | Travel mode used for costing. The examples use auto (driving) and pedestrian (walking). | |
polygons | body | boolean | No | true returns polygons. | |
contours | body | array | No | Limits to compute - one polygon each. | |
contours[] | body | object | No | ||
contours[].time | body | number | No | Travel-time limit for this contour. | |
contours[].color | body | string | No | Hex colour (without #) to tag the polygon with. |
Request body
{
"locations": [
{
"lat": 30.744014,
"lon": 73.990508
}
],
"costing": "pedestrian",
"polygons": true,
"contours": [
{
"time": 15.0,
"color": "ff0000"
}
]
}
Response Schema
200 OK
{
"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"
}
| 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. |
Example
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"}]}'