GET /elevation?lat={lat}&lon={lon}
Elevation API
Terrain for your map. Elevation for a point or a whole path.
Try it
{
"latitude": 39.77,
"longitude": -104.9,
"elevation": 1610,
"elevation_ft": 5282,
"resolution": 30
}1M requests · $20/mo. Get started
Up to 512 points
A whole track.
One request.
Send your coordinates or sample evenly along a path. Get every height back in order, with feet, meters, and grid spacing on each point.
Example profile / Front Range, Colorado
6,693 ft
Sample 9 of 17
39.74, -105.31
View the 17-point JSON response
{
"latitude": 39.74,
"longitude": -104.99,
"elevation": 1595,
"elevation_ft": 5233,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.03,
"elevation": 1615,
"elevation_ft": 5299,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.07,
"elevation": 1644,
"elevation_ft": 5394,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.11,
"elevation": 1699,
"elevation_ft": 5574,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.15,
"elevation": 1723,
"elevation_ft": 5653,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.19,
"elevation": 1787,
"elevation_ft": 5863,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.23,
"elevation": 1865,
"elevation_ft": 6119,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.27,
"elevation": 1821,
"elevation_ft": 5974,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.31,
"elevation": 2040,
"elevation_ft": 6693,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.35,
"elevation": 2118,
"elevation_ft": 6949,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.39,
"elevation": 2090,
"elevation_ft": 6857,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.43,
"elevation": 2225,
"elevation_ft": 7300,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.47,
"elevation": 2548,
"elevation_ft": 8360,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.51,
"elevation": 2346,
"elevation_ft": 7697,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.55,
"elevation": 2545,
"elevation_ft": 8350,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.59,
"elevation": 2798,
"elevation_ft": 9180,
"resolution": 30
},
"latitude": 39.74,
"longitude": -105.63,
"elevation": 3284,
"elevation_ft": 10774,
"resolution": 30
}
]
}17 sampled coordinates across the Front Range. Move across the profile or use the slider to inspect each point.
Send a list or sample a path
The 17 profile points as coordinates, a compact polyline, or JSON. POST a coordinate array for longer payloads. Up to 512 points count as one pooled request.
curl --get 'https://api.parseapi.com/elevation' \
--data-urlencode 'points=39.74,-104.99|39.74,-105.03|39.74,-105.07|39.74,-105.11|39.74,-105.15|39.74,-105.19|39.74,-105.23|39.74,-105.27|39.74,-105.31|39.74,-105.35|39.74,-105.39|39.74,-105.43|39.74,-105.47|39.74,-105.51|39.74,-105.55|39.74,-105.59|39.74,-105.63' \
-H "X-API-Key: YOUR_API_KEY" \
-H "Parse-Version: 2.0.0"Polylines use standard precision 5. Read the API reference.
Make your first request.
One key works across the APIs. Copy a request in your language and get JSON back.
curl "https://api.parseapi.com/elevation?lat=39.77&lon=-104.9" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Parse-Version: 2.0.0"// Example response · 200
{
"latitude": 39.77,
"longitude": -104.9,
"elevation": 1610,
"elevation_ft": 5282,
"resolution": 30
}API referenceSDKsKeys and authentication
Every response field
- latitudenumber
- Sample latitude
- longitudenumber
- Sample longitude
- elevationinteger or null
- Height in meters relative to EGM2008 (null if unavailable)
- elevation_ftinteger or null
- Height in feet relative to EGM2008 (null if unavailable)
- resolutioninteger or null
- Approx grid spacing in meters
QUESTIONS
- What do I pass?
- Latitude and longitude for one point. For a track, pass up to 512 coordinate pairs or an encoded polyline with the enc: prefix. A track counts as one pooled request.
- What comes back?
- Coordinates, elevation in meters, elevation_ft in feet, and resolution for the selected grid. A track wraps the same records in a points array, in your original order. Missing elevations stay null.
- How do I send a track?
- Use GET /elevation?points= with lat,lon pairs separated by pipes. A precision-5 encoded polyline prefixed with enc: keeps the URL compact. For longer payloads, POST a JSON coordinate array to /elevation. Every format supports up to 512 points; POST arrays avoid URL-length limits.
- Can it sample evenly along a route?
- Yes. Send 2-512 vertices in path and choose 2-512 samples. The response includes your start and finish, with evenly spaced elevations along the great-circle segments between waypoints. GET accepts a coordinate list or polyline; POST also accepts coordinate arrays. The whole path uses one pooled request.
- What is the grid?
- Nearest sample on a 30m terrain grid or a global fallback with about 460m spacing, including ocean depth. resolution reports spacing, not a guarantee of vertical accuracy. Ocean depth is negative, below sea level.
- Is it on /point too?
- Yes. Add deep=true on Point for elevation, elevation_ft, and resolution on every plan. Paid Postal and City detail also include elevation where available.
The terrain at your location: What is my elevation?