Elevation API
Query high-resolution topographical elevation data (meters above sea level) across individual coordinates or sampled along transit corridors.
Where it's used
Use cases, value and how it works
Overview & Solution
Elevation and ground slope critically influence infrastructure engineering, telecommunication signal propagation, heavy vehicle fuel consumption, and drainage planning. The Elevation API extracts accurate altitude data derived from global digital elevation models (DEM).
Industry Use Cases
1. Property & Asset Risk Assessment
- Flood risk screening: Factor a property's elevation relative to its surroundings into flood and waterlogging risk checks for insurance underwriting or loan collateral review.
API reference
Map Visualization · API key only
Quick try
curl -X GET 'https://api-gw.sovereignsolutions.com/gateway/elevation/30m?locations=28.6129,77.2295&api-key=$API_KEY'
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /elevation/30m | Elevation - single location |
GET | /elevation/30m | Elevation - single location (GeoJSON) |
GET | /elevation/30m | Elevation - multiple locations |
GET | /elevation/30m | Elevation - multiple locations (GeoJSON) |
POST | /elevation/30m | Elevation - multiple locations (POST) |
POST | /elevation/30m | Elevation - multiple locations (POST, GeoJSON) |
Elevation - single location
Request parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | query | string | Yes | latitude,longitude pairs separated by ` | `, or an encoded polyline. |
format | query | string | No | json (default) or geojson. | |
interpolation | query | string | No | How to interpolate between data points: nearest, bilinear (default) or cubic. | |
nodata_value | query | string | No | Elevation to return where the dataset has no data: null (default), nan, or an integer such as -9999. |
Response
{
"results": [
{
"dataset": "srtm30m",
"elevation": 213,
"location": {
"lat": 28.6129,
"lng": 77.2295
}
}
],
"status": "OK"
}
| Field | Type | Description |
|---|---|---|
results | array | One entry per input location, in input order. |
results[] | object | |
results[].dataset | string | Dataset the elevation comes from. |
results[].elevation | integer | Elevation in metres. null when the location is outside the dataset or has no data. |
results[].location | object | |
results[].location.lat | number | Latitude of the location. |
results[].location.lng | number | Longitude of the location. |
status | string | OK on success, INVALID_REQUEST for an input error, SERVER_ERROR otherwise. |
Errors: non-2xx responses use the standard status codes listed on Errors.
Elevation - single location (GeoJSON)
Request parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | query | string | Yes | latitude,longitude pairs separated by ` | `, or an encoded polyline. |
format | query | string | Yes | json (default) or geojson. | geojson |
interpolation | query | string | No | How to interpolate between data points: nearest, bilinear (default) or cubic. | |
nodata_value | query | string | No | Elevation to return where the dataset has no data: null (default), nan, or an integer such as -9999. |
Response
{
"features": [
{
"geometry": {
"coordinates": [
77.2295,
28.6129,
213
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Response fields (10)
| Field | Type | Description |
|---|---|---|
features | array | One point feature per input location, in input order. |
features[] | object | |
features[].geometry | object | |
features[].geometry.coordinates | array | [longitude, latitude, elevation] - elevation in metres. |
features[].geometry.coordinates[] | number | |
features[].geometry.type | string | |
features[].properties | object | |
features[].properties.dataset | string | Dataset the elevation comes from. |
features[].type | string | |
type | string | Always FeatureCollection. |
Errors: non-2xx responses use the standard status codes listed on Errors.
Elevation - multiple locations
Request parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | query | string | Yes | latitude,longitude pairs separated by ` | `, or an encoded polyline. |
format | query | string | No | json (default) or geojson. | |
interpolation | query | string | No | How to interpolate between data points: nearest, bilinear (default) or cubic. | |
nodata_value | query | string | No | Elevation to return where the dataset has no data: null (default), nan, or an integer such as -9999. |
Response
{
"results": [
{
"dataset": "srtm30m",
"elevation": 213,
"location": {
"lat": 28.6129,
"lng": 77.2295
}
},
{
"dataset": "srtm30m",
"elevation": 2204,
"location": {
"lat": 31.1048,
"lng": 77.1734
}
},
{
"dataset": "srtm30m",
"elevation": 914,
"location": {
"lat": 12.9716,
"lng": 77.5946
}
}
],
"status": "OK"
}
| Field | Type | Description |
|---|---|---|
results | array | One entry per input location, in input order. |
results[] | object | |
results[].dataset | string | Dataset the elevation comes from. |
results[].elevation | integer | Elevation in metres. null when the location is outside the dataset or has no data. |
results[].location | object | |
results[].location.lat | number | Latitude of the location. |
results[].location.lng | number | Longitude of the location. |
status | string | OK on success, INVALID_REQUEST for an input error, SERVER_ERROR otherwise. |
Errors: non-2xx responses use the standard status codes listed on Errors.
Elevation - multiple locations (GeoJSON)
Request parameters
| Parameter | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
locations | query | string | Yes | latitude,longitude pairs separated by ` | `, or an encoded polyline. |
format | query | string | Yes | json (default) or geojson. | geojson |
interpolation | query | string | No | How to interpolate between data points: nearest, bilinear (default) or cubic. | |
nodata_value | query | string | No | Elevation to return where the dataset has no data: null (default), nan, or an integer such as -9999. |
Response
{
"features": [
{
"geometry": {
"coordinates": [
77.2295,
28.6129,
213
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
77.1734,
31.1048,
2204
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
77.5946,
12.9716,
914
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Response fields (10)
| Field | Type | Description |
|---|---|---|
features | array | One point feature per input location, in input order. |
features[] | object | |
features[].geometry | object | |
features[].geometry.coordinates | array | [longitude, latitude, elevation] - elevation in metres. |
features[].geometry.coordinates[] | number | |
features[].geometry.type | string | |
features[].properties | object | |
features[].properties.dataset | string | Dataset the elevation comes from. |
features[].type | string | |
type | string | Always FeatureCollection. |
Errors: non-2xx responses use the standard status codes listed on Errors.
Elevation - multiple locations (POST)
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
locations | body | string | - | latitude,longitude pairs separated by ` |
{
"locations": "28.6129,77.2295|31.1048,77.1734|12.9716,77.5946"
}
Response
{
"results": [
{
"dataset": "srtm30m",
"elevation": 213,
"location": {
"lat": 28.6129,
"lng": 77.2295
}
},
{
"dataset": "srtm30m",
"elevation": 2204,
"location": {
"lat": 31.1048,
"lng": 77.1734
}
},
{
"dataset": "srtm30m",
"elevation": 914,
"location": {
"lat": 12.9716,
"lng": 77.5946
}
}
],
"status": "OK"
}
| Field | Type | Description |
|---|---|---|
results | array | One entry per input location, in input order. |
results[] | object | |
results[].dataset | string | Dataset the elevation comes from. |
results[].elevation | integer | Elevation in metres. null when the location is outside the dataset or has no data. |
results[].location | object | |
results[].location.lat | number | Latitude of the location. |
results[].location.lng | number | Longitude of the location. |
status | string | OK on success, INVALID_REQUEST for an input error, SERVER_ERROR otherwise. |
Same arguments as the GET call, in the body - use it when the location list is too long for a URL.
Errors: non-2xx responses use the standard status codes listed on Errors.
Elevation - multiple locations (POST, GeoJSON)
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
locations | body | string | - | latitude,longitude pairs separated by ` |
format | body | string | - | json (default) or geojson. |
{
"locations": "28.6129,77.2295|31.1048,77.1734|12.9716,77.5946",
"format": "geojson"
}
Response
{
"features": [
{
"geometry": {
"coordinates": [
77.2295,
28.6129,
213
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
77.1734,
31.1048,
2204
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
77.5946,
12.9716,
914
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Response fields (10)
| Field | Type | Description |
|---|---|---|
features | array | One point feature per input location, in input order. |
features[] | object | |
features[].geometry | object | |
features[].geometry.coordinates | array | [longitude, latitude, elevation] - elevation in metres. |
features[].geometry.coordinates[] | number | |
features[].geometry.type | string | |
features[].properties | object | |
features[].properties.dataset | string | Dataset the elevation comes from. |
features[].type | string | |
type | string | Always FeatureCollection. |
Same arguments as the GET call, in the body - use it when the location list is too long for a URL.
Errors: non-2xx responses use the standard status codes listed on Errors.
Notes
Coordinates are WGS-84 (EPSG:4326). Note the order: the locations argument is latitude,longitude, while GeoJSON output is [longitude, latitude, elevation].