Free
€0/ month
1,000coordinates per month
Basic analytics
Get a free keyA free and open-source elevation API.
Check out the source and host
your own or use our public API.
Subscribe for higher resolution.
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!
Open-Elevation remains free up to 1,000 requests/month.
For more requests and increased resolution, see our plans
For higher volumes and increased resolution, choose a plan that fits your needs.
€0/ month
1,000coordinates per month
Basic analytics
Get a free key€5.99/ month
3,000coordinates per month
Advanced analytics
Higher throughput
Higher resolution
Choose Basic€14.99/ month
100,000coordinates per month
Advanced analytics
Higher throughput
Higher resolution
Priority support
Choose Standard€59.99/ month
400,000coordinates per month
Advanced analytics
Higher throughput
Higher resolution
Priority support
Choose ProJust 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.
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.
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'
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"}'
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.
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.
We currently have the following datasets available. For even higher resolution options, contact us.
| Dataset | Grid spacing | Access | Availability |
|---|---|---|---|
srtm-250mSRTM, resampled | 250 m | All plans and requests without a key | Check catalog |
srtm-90mSRTM, resampled | 90 m | Paid plans | Check catalog |
Data: NASA/USGS SRTM 1 Arc-Second Global V3, resampled by Open-Elevation.
Omit dataset or use auto to automatically get the finest available dataset for your plan.
| HTTP status | Meaning |
|---|---|
| 400 | Invalid request. Dataset selectors must be one of auto, srtm-250m or srtm-90m. |
| 401 | The supplied API key is invalid. |
| 403 | Your plan does not allow the selected dataset. |
| 429 | A request limit or your coordinate allowance has been reached. |
| 503 | The selected dataset is not installed, or the service is temporarily unavailable. |
You can easily host your own instance of Open-Elevation, and there are multiple ways of doing so:
Check the documentation here.
Hosting it yourself is too confusing? Consider using our free API.
Enjoy the service? You can support us by donating below.