What is Open-Elevation?

Open-Elevation is a free and open-source alternative to the Google Elevation API and similar offerings.

This service came out of the need to have a hosted, easy to use, and easy to set up elevation API. While there are some alternatives out there, none of them work out of the box and most point to outdated datasets. Open-Elevation is easy to set up, has its own Docker image, and provides scripts to easily acquire datasets. We offer elevation data for the entire world with our public API.

The code is fully open-source (GPLv2). Please consider submitting a pull request if you have improvements!

Public API

Open-Elevation remains free up to 1,000 requests/month.
For more requests and increased resolution, see our plans

Pricing

For higher volumes and increased resolution, choose a plan that fits your needs.

Free

€0/ month

1,000coordinates per month

Basic analytics

Get a free key

Basic

€5.99/ month

3,000coordinates per month

Advanced analytics

Higher throughput

Higher resolution

Choose Basic
Best value

Standard

€14.99/ month

100,000coordinates per month

Advanced analytics

Higher throughput

Higher resolution

Priority support

Choose Standard

Pro

€59.99/ month

400,000coordinates per month

Advanced analytics

Higher throughput

Higher resolution

Priority support

Choose Pro

Just trying it out? Use up to 500 coordinates per month, per IP address, without a key.

Need even higher resolution or more requests? Talk to us about Enterprise.

API documentation

Elevation lookup

Send latitude and longitude in decimal degrees. Elevations are returned in metres, in the same order as your locations. You can also provide a dataset parameter to select higher resolution datasets.

GET

Separate latitude and longitude with a comma, and locations with |.

curl 'https://api.open-elevation.com/api/v1/lookup?locations=41.16,-8.63&dataset=srtm-250m'

POST

For a batch, send a JSON object with a locations array. Put the optional dataset selector in the JSON body, not the query string.

curl 'https://api.open-elevation.com/api/v1/lookup' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' \
  --data '{"locations":[{"latitude":41.16,"longitude":-8.63}],"dataset":"srtm-250m"}'

Response

When you supply a dataset selector, each result identifies the dataset used. For example, the explicit 250 m lookup above can return:

{
  "results": [
    {
      "latitude": 41.16,
      "longitude": -8.63,
      "elevation": 86.457779,
      "dataset": "srtm-250m"
    }
  ]
}

With a selector, a location without elevation data has dataset: null and elevation: 0. A genuine zero elevation has a non-null dataset identifier.

Use dataset=auto to get automatic selection with dataset identifiers.

API keys and usage

Try the API without a key, or create a free account for more requests. Paid plans add higher throughput and 90 m data. Find your key in the dashboard and send it in the X-API-Key request header.

Datasets

We currently have the following datasets available. For even higher resolution options, contact us.

DatasetGrid spacingAccessAvailability
srtm-250m
SRTM, resampled
250 mAll plans and requests without a keyCheck catalog
srtm-90m
SRTM, resampled
90 mPaid plansCheck catalog

Data: NASA/USGS SRTM 1 Arc-Second Global V3, resampled by Open-Elevation.

Automatic selection

Omit dataset or use auto to automatically get the finest available dataset for your plan.

Errors

HTTP statusMeaning
400Invalid request. Dataset selectors must be one of auto, srtm-250m or srtm-90m.
401The supplied API key is invalid.
403Your plan does not allow the selected dataset.
429A request limit or your coordinate allowance has been reached.
503The selected dataset is not installed, or the service is temporarily unavailable.

Host your Own

You can easily host your own instance of Open-Elevation, and there are multiple ways of doing so:

  • With Docker. We offer a Docker image and a handy tutorial on how to use it.
  • On your own machines. There's a simple tutorial on how to set up all dependencies if you don't want to use Docker.

Check the documentation here.

Hosting it yourself is too confusing? Consider using our free API.