TL;DR
What it does: Get elevation in meters for any GPS coordinate. Choose from multiple elevation datasets (etopo1, ned10m, nzdem, mapzen).
Quick start: https://api.opentopodata.org/v1/etopo1?locations=40.71,-74.00
No API key needed - just call the URL
Overview
Open Topo Data is a free elevation API that returns elevation in meters for any GPS latitude/longitude coordinate. You don't need an API key or any authentication - just construct a URL with coordinates and the dataset you want to use. Multiple datasets are available with varying coverage and resolution: etopo1 for global coverage at 1.8km resolution, ned10m for high-resolution US data, nzdem for New Zealand, and mapzen for global data.
Live Example
Here's the exact URL to call and the real response you'll get:
The URL to call (New York City):
https://api.opentopodata.org/v1/etopo1?locations=40.71,-74.00
Try This URL Now →
The actual response you get:
{
"results": [
{
"dataset": "etopo1",
"elevation": 7.0,
"location": {
"lat": 40.71,
"lng": -74.0
}
}
],
"status": "OK"
}
What does this data mean?
New York City's elevation at (40.71, -74.00): about 7 meters (23 feet) above sea level.
- results[]
- Array of elevation results - one entry per location you requested
- results[].dataset
- Which elevation dataset was used (e.g., "etopo1")
- results[].elevation
- Elevation in meters above sea level (negative values = below sea level)
- results[].location.lat
- Latitude of the queried point
- results[].location.lng
- Longitude of the queried point
- status
- Response status: "OK" = success, error messages otherwise
Available Elevation Datasets
- etopo1
- Coverage: Global · Resolution: 1.8 km (60 arc-seconds) · The default dataset. Covers the entire Earth including oceans.
- ned10m
- Coverage: United States only · Resolution: 10 meters · High-resolution data from the US Geological Survey. Best for US locations.
- nzdem
- Coverage: New Zealand only · Resolution: 8 meters · LINZ NZ 8m Digital Elevation Model.
- mapzen
- Coverage: Global · Resolution: ~90 meters (3 arc-seconds) · A global dataset with better resolution than etopo1, but coarser than ned10m.
How to use this API
JavaScript Example
// Get elevation for a GPS coordinate
const lat = 40.71;
const lng = -74.00;
const url = `https://api.opentopodata.org/v1/etopo1?locations=${lat},${lng}`;
fetch(url)
.then(res => res.json())
.then(data => {
console.log(`Dataset: ${data.results[0].dataset}`);
console.log(`Elevation: ${data.results[0].elevation} meters`);
});
Python Example
import requests
url = "https://api.opentopodata.org/v1/etopo1"
params = {
"locations": "40.71,-74.00"
}
response = requests.get(url, params=params)
data = response.json()
elevation = data["results"][0]["elevation"]
dataset = data["results"][0]["dataset"]
print(f"Elevation: {elevation} meters ({dataset})")
Multiple Points (Pipe-Separated)
// Query multiple coordinates in one request
// Separate lat,lng pairs with a pipe character
const url = "https://api.opentopodata.org/v1/etopo1?locations=40.71,-74.00|34.05,-118.24|51.51,-0.13";
fetch(url)
.then(res => res.json())
.then(data => {
data.results.forEach((r, i) => {
console.log(`Point ${i + 1}: ${r.elevation}m at (${r.location.lat}, ${r.location.lng})`);
});
});
Frequently Asked Questions
- Do I need an API key?
- No! Open Topo Data is completely free with no authentication required. Just call the URL with coordinates.
- What elevation datasets are available?
- Four datasets are available: etopo1 (global, 1.8km resolution), ned10m (US only, 10m resolution), nzdem (New Zealand, 8m resolution), and mapzen (global, ~90m resolution). Switch datasets by changing the path:
/v1/etopo1,/v1/ned10m, etc. - Can I query multiple points at once?
- Yes! Pipe-separate multiple lat,lng pairs in the
locationsparameter:locations=40.71,-74.00|34.05,-118.24|51.51,-0.13. Each point gets its own result in the response array. - Is there a rate limit?
- No specific rate limit is documented, but please be reasonable with your request volume. The service is provided for free, so avoid making thousands of requests per second.
- Can I use this commercially?
- Yes! The API is free for both personal and commercial use. Check the official documentation for any dataset-specific restrictions or attribution requirements.
- How do I choose a different dataset?
- Replace
etopo1in the URL path with your chosen dataset name. For example:https://api.opentopodata.org/v1/ned10m?locations=40.71,-74.00for US high-resolution data.
API Details
- Base URL
https://api.opentopodata.org/v1/etopo1- Documentation
- https://www.opentopodata.org/
- Category
- Geocoding
- Authentication
- None required - completely free
- Rate Limit
- None documented, be reasonable
- Geographic Coverage
- Global (varies by dataset)