{dataset_name}: Get elevation for locations

API: opentopodata.org:open-topo-data
Endpoint: /v1/{dataset_name}
Response format: unknown
Auth: unknown
Method: GET
Last Status: 200
Latency: 189ms

Description

Reads the elevation from a given dataset for one or more lat/lng locations. Supports JSON and GeoJSON output formats.

Parameters (6)

dataset_name (string, path, required)

Name of the elevation dataset to query

Constraints: {'enum': ['aster30m', 'bkg200m', 'emod2018', 'etopo1', 'eudem25m', 'gebco2020', 'mapzen', 'ned10m', 'nzdem8m', 'srtm30m', 'srtm90m', 'test-dataset']}

format (string, query, optional, default: json)

Response format

Constraints: {'enum': ['json', 'geojson']}

interpolation (string, query, optional, default: bilinear)

Interpolation method for elevation values

Constraints: {'enum': ['nearest', 'bilinear', 'cubic']}

locations (string, query, required)

Latitude,longitude pairs separated by pipe characters, or an encoded Google polyline

nodata_value (string, query, optional, default: null)

Value to return for locations with no elevation data

Constraints: {'enum': ['null', 'nan']}

samples (integer, query, optional)

Number of equally-spaced points to sample along the path between locations

Constraints: {'minimum': 2, 'maximum': 1000}

Examples (2)

Get elevation for locations openapi-spec
curl 'https://api.opentopodata.org/v1/srtm90m?locations=-43.5%2C172.5%7C27.6%2C1.98&samples=10&interpolation=cubic&nodata_value=null&format=json'
import requests

resp = requests.get(
    "https://api.opentopodata.org/v1/srtm90m",
    params={
        'locations': '-43.5,172.5|27.6,1.98',
        'samples': '10',
        'interpolation': 'cubic',
        'nodata_value': 'null',
        'format': 'json',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("opentopodata")
result = api.fetch("v1/{dataset_name}", locations="-43.5,172.5|27.6,1.98", samples=10, interpolation="cubic", nodata_value="null", format="json")

for item in result:
    print(item)
const resp = await fetch("https://api.opentopodata.org/v1/srtm90m?locations=-43.5%2C172.5%7C27.6%2C1.98&samples=10&interpolation=cubic&nodata_value=null&format=json");
const data = await resp.json();
Get elevation for locations probe-gate
curl 'https://api.opentopodata.org/v1/srtm90m?locations=-43.5%2C172.5%7C27.6%2C1.98&samples=10&interpolation=cubic&nodata_value=null&format=json'
import requests

resp = requests.get(
    "https://api.opentopodata.org/v1/srtm90m",
    params={
        'locations': '-43.5,172.5|27.6,1.98',
        'samples': '10',
        'interpolation': 'cubic',
        'nodata_value': 'null',
        'format': 'json',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("opentopodata")
result = api.fetch("v1/{dataset_name}", locations="-43.5,172.5|27.6,1.98", samples=10, interpolation="cubic", nodata_value="null", format="json")

for item in result:
    print(item)
const resp = await fetch("https://api.opentopodata.org/v1/srtm90m?locations=-43.5%2C172.5%7C27.6%2C1.98&samples=10&interpolation=cubic&nodata_value=null&format=json");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 03:20:53.854996 200 189ms
2026-04-16 02:20:09.870280 200 194ms
2026-04-15 02:46:51.197270 200 190ms
2026-04-15 01:44:19.384196 200 219ms
2026-04-14 02:50:47.044826 200 205ms
2026-04-14 02:28:19.338995 200 196ms
2026-04-12 16:09:33.411357 200 190ms
2026-04-12 15:51:43.114413 200 222ms
2026-04-10 01:00:51.395789 200 160ms
2026-04-10 00:14:45.591212 200 166ms
2026-04-09 02:12:56.562340 200 193ms
2026-04-09 02:04:46.489070 200 246ms
2026-04-03T21:20:09.831213 200 139ms