Skip to main content

Elevation API

Query high-resolution topographical elevation data (meters above sea level) across individual coordinates or sampled along transit corridors.


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

Endpoints​

MethodPathPurpose
GET/elevation/30mElevation - single location
GET/elevation/30mElevation - single location (GeoJSON)
GET/elevation/30mElevation - multiple locations
GET/elevation/30mElevation - multiple locations (GeoJSON)
POST/elevation/30mElevation - multiple locations (POST)
POST/elevation/30mElevation - multiple locations (POST, GeoJSON)

All requests need only your API key, as the api-key query parameter - no bearer token:

?api-key=<apiKey>

Elevation - single location​

GET /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsquerystringYeslatitude,longitude pairs separated by ``, or an encoded polyline.
formatquerystringNojson (default) or geojson.
interpolationquerystringNoHow to interpolate between data points: nearest, bilinear (default) or cubic.
nodata_valuequerystringNoElevation to return where the dataset has no data: null (default), nan, or an integer such as -9999.

Response Schema

200 OK

{
"results": [
{
"dataset": "srtm30m",
"elevation": 213,
"location": {
"lat": 28.6129,
"lng": 77.2295
}
}
],
"status": "OK"
}
FieldTypeDescription
resultsarrayOne entry per input location, in input order.
results[]object
results[].datasetstringDataset the elevation comes from.
results[].elevationintegerElevation in metres. null when the location is outside the dataset or has no data.
results[].locationobject
results[].location.latnumberLatitude of the location.
results[].location.lngnumberLongitude of the location.
statusstringOK on success, INVALID_REQUEST for an input error, SERVER_ERROR otherwise.

Elevation - single location (GeoJSON)​

GET /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsquerystringYeslatitude,longitude pairs separated by ``, or an encoded polyline.
formatquerystringNojson (default) or geojson.geojson
interpolationquerystringNoHow to interpolate between data points: nearest, bilinear (default) or cubic.
nodata_valuequerystringNoElevation to return where the dataset has no data: null (default), nan, or an integer such as -9999.

Response Schema

200 OK

{
"features": [
{
"geometry": {
"coordinates": [
77.2295,
28.6129,
213
],
"type": "Point"
},
"properties": {
"dataset": "srtm30m"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
FieldTypeDescription
featuresarrayOne point feature per input location, in input order.
features[]object
features[].geometryobject
features[].geometry.coordinatesarray[longitude, latitude, elevation] - elevation in metres.
features[].geometry.coordinates[]number
features[].geometry.typestring
features[].propertiesobject
features[].properties.datasetstringDataset the elevation comes from.
features[].typestring
typestringAlways FeatureCollection.

Elevation - multiple locations​

GET /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsquerystringYeslatitude,longitude pairs separated by ``, or an encoded polyline.
formatquerystringNojson (default) or geojson.
interpolationquerystringNoHow to interpolate between data points: nearest, bilinear (default) or cubic.
nodata_valuequerystringNoElevation to return where the dataset has no data: null (default), nan, or an integer such as -9999.

Response Schema

200 OK

{
"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"
}
FieldTypeDescription
resultsarrayOne entry per input location, in input order.
results[]object
results[].datasetstringDataset the elevation comes from.
results[].elevationintegerElevation in metres. null when the location is outside the dataset or has no data.
results[].locationobject
results[].location.latnumberLatitude of the location.
results[].location.lngnumberLongitude of the location.
statusstringOK on success, INVALID_REQUEST for an input error, SERVER_ERROR otherwise.

Elevation - multiple locations (GeoJSON)​

GET /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsquerystringYeslatitude,longitude pairs separated by ``, or an encoded polyline.
formatquerystringNojson (default) or geojson.geojson
interpolationquerystringNoHow to interpolate between data points: nearest, bilinear (default) or cubic.
nodata_valuequerystringNoElevation to return where the dataset has no data: null (default), nan, or an integer such as -9999.

Response Schema

200 OK

{
"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"
}
FieldTypeDescription
featuresarrayOne point feature per input location, in input order.
features[]object
features[].geometryobject
features[].geometry.coordinatesarray[longitude, latitude, elevation] - elevation in metres.
features[].geometry.coordinates[]number
features[].geometry.typestring
features[].propertiesobject
features[].properties.datasetstringDataset the elevation comes from.
features[].typestring
typestringAlways FeatureCollection.

Elevation - multiple locations (POST)​

POST /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsbodystringNolatitude,longitude pairs separated by ``, or an encoded polyline.

Request body

{
"locations": "28.6129,77.2295|31.1048,77.1734|12.9716,77.5946"
}

Response Schema

200 OK

{
"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"
}
FieldTypeDescription
resultsarrayOne entry per input location, in input order.
results[]object
results[].datasetstringDataset the elevation comes from.
results[].elevationintegerElevation in metres. null when the location is outside the dataset or has no data.
results[].locationobject
results[].location.latnumberLatitude of the location.
results[].location.lngnumberLongitude of the location.
statusstringOK 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.

Elevation - multiple locations (POST, GeoJSON)​

POST /elevation/30m

Base URL: https://api-gw.sovereignsolutions.com/gateway

Request Parameters

ParameterInTypeRequiredDescriptionExample
locationsbodystringNolatitude,longitude pairs separated by ``, or an encoded polyline.
formatbodystringNojson (default) or geojson.

Request body

{
"locations": "28.6129,77.2295|31.1048,77.1734|12.9716,77.5946",
"format": "geojson"
}

Response Schema

200 OK

{
"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"
}
FieldTypeDescription
featuresarrayOne point feature per input location, in input order.
features[]object
features[].geometryobject
features[].geometry.coordinatesarray[longitude, latitude, elevation] - elevation in metres.
features[].geometry.coordinates[]number
features[].geometry.typestring
features[].propertiesobject
features[].properties.datasetstringDataset the elevation comes from.
features[].typestring
typestringAlways FeatureCollection.

Same arguments as the GET call, in the body - use it when the location list is too long for a URL.

Example​

curl -X GET 'https://api-gw.sovereignsolutions.com/gateway/elevation/30m?locations=28.6129,77.2295&api-key=$API_KEY'

Notes​

Coordinates are WGS-84 (EPSG:4326). Note the order: the locations argument is latitude,longitude, while GeoJSON output is [longitude, latitude, elevation].