Open-Elevation
App · Travel & Places · 3 actions
Find out how high above sea level anywhere in the world is, with the free Open-Elevation service. Measure a single spot, a whole list of sites at once to see which is highest and lowest, or a route from end to end for its total climb, its steepest stretch and the shape of the ground along the way. Every height comes in both metres and feet, and every distance in kilometres and miles. No account or API key is required.
Actions
| Action | What it does |
|---|---|
| Get elevation | Find out how high the ground is above sea level at one place, anywhere in the world. |
| Get elevation along a route | See the shape of the ground along a route and how much climbing it holds: total ascent and descent, the highest and lowest points, the average grade and the steepest stretch, plus the height at every point measured along the way. |
| Get elevations for several places | Measure a whole list of places at once and find out which is highest, which is lowest, and how much ground lies between them. |
Get elevation
Find out how high the ground is above sea level at one place, anywhere in the world. The height comes back in both metres and feet, and a place below sea level reads as a negative number. Coverage runs from 56°S to 60°N; a place outside that band is reported as having no reading rather than as sea level.
Inputs
- Latitude
latitudenumberRequired - Latitude of the place, in decimal degrees from -90 to 90. Positive is north of the equator.From -90 to 90.
- Longitude
longitudenumberRequired - Longitude of the place, in decimal degrees from -180 to 180. The Americas take a negative longitude.From -180 to 180.
Outputs
attributionobject- Credit to show wherever this data appears.
coverage_notetext- Set only when something had no reading, explaining why. Empty otherwise.
elevation_feetnumber- The same height in feet.
elevation_metersnumber- Height of the ground above sea level, in metres. Empty when the place is outside the dataset's coverage.
in_coveragetrue/false- False when the place falls outside the dataset and has no reading.
latitudenumberlongitudenumber
Example output
{
"attribution": {
"text": "Elevation data courtesy of Open-Elevation",
"url": "https://open-elevation.com"
},
"coverage_note": null,
"elevation_feet": 383.9,
"elevation_meters": 117.0,
"in_coverage": true,
"latitude": 41.161758,
"longitude": -8.583933
}Get elevation along a route
See the shape of the ground along a route and how much climbing it holds: total ascent and descent, the highest and lowest points, the average grade and the steepest stretch, plus the height at every point measured along the way. Give it a start and a finish, and any points to pass through. Ascent and descent are measured between the sampled points, so a finer sampling finds more of both.
Inputs
- Route
waypointslistRequired - The route, as the places it runs between: a start and a finish, plus any points it should pass through on the way, in order. The route is the straight line between each pair. Up to 50 points.
- Measurements
samplesnumber - How many points along the route to measure. More measurements draw a finer profile and find more of the small rises and falls; the default suits most routes.From 2 to 500. Default:
100.
Outputs
attributionobject- Credit to show wherever this data appears.
average_grade_percentnumber- Net change as a percentage of the distance covered.
coverage_notetext- Set only when something had no reading, explaining why. Empty otherwise.
distance_kmnumber- Length of the whole route, in kilometres.
distance_milesnumberend_elevation_feetnumberend_elevation_metersnumberhighest_pointobjectlowest_pointobjectnet_change_feetnumbernet_change_metersnumber- How much higher the finish is than the start. Negative for a route that ends lower.
point_countnumber- How many points along the route were measured.
pointslist- Every measured point, in order along the route.
points_without_datanumberspacing_kmnumber- Distance between one measured point and the next.
spacing_milesnumberstart_elevation_feetnumberstart_elevation_metersnumbersteepest_climb_percentnumbersteepest_descent_percentnumbertotal_ascent_feetnumbertotal_ascent_metersnumber- Every rise along the route, added up.
total_descent_feetnumbertotal_descent_metersnumber- Every fall along the route, added up.
waypointslist- The route as it was given.
Example output
{
"attribution": {
"text": "Elevation data courtesy of Open-Elevation",
"url": "https://open-elevation.com"
},
"average_grade_percent": 36.67,
"coverage_note": null,
"distance_km": 10.135,
"distance_miles": 6.298,
"end_elevation_feet": 15620.1,
"end_elevation_meters": 4761.0,
"highest_point": {
"distance_km": 10.135,
"distance_miles": 6.298,
"elevation_feet": 15620.1,
"elevation_meters": 4761.0,
"in_coverage": true,
"latitude": 45.8326,
"longitude": 6.8652
},
"lowest_point": {
"distance_km": 0.0,
"distance_miles": 0.0,
"elevation_feet": 3425.2,
"elevation_meters": 1044.0,
"in_coverage": true,
"latitude": 45.9237,
"longitude": 6.8694
},
"net_change_feet": 12194.9,
"net_change_meters": 3717.0,
"point_count": 25,
"points": [
{
"distance_km": 0.0,
"distance_miles": 0.0,
"elevation_feet": 3425.2,
"elevation_meters": 1044.0,
"in_coverage": true,
"latitude": 45.9237,
"longitude": 6.8694
},
{
"distance_km": 10.135,
"distance_miles": 6.298,
"elevation_feet": 15620.1,
"elevation_meters": 4761.0,
"in_coverage": true,
"latitude": 45.8326,
"longitude": 6.8652
}
],
"points_without_data": 0,
"spacing_km": 0.422,
"spacing_miles": 0.262,
"start_elevation_feet": 3425.2,
"start_elevation_meters": 1044.0,
"steepest_climb_percent": 72.27,
"steepest_descent_percent": -1.66,
"total_ascent_feet": 12217.8,
"total_ascent_meters": 3724.0,
"total_descent_feet": 23.0,
"total_descent_meters": 7.0,
"waypoints": [
{
"label": "Chamonix",
"latitude": 45.9237,
"longitude": 6.8694
},
{
"label": "Mont Blanc summit",
"latitude": 45.8326,
"longitude": 6.8652
}
]
}Get elevations for several places
Measure a whole list of places at once and find out which is highest, which is lowest, and how much ground lies between them. Use this rather than one step per place: the list goes off in a single request, so two hundred sites cost exactly what one does.
Inputs
- Places
placeslistRequired - The places to measure. Add a row for each one. They are all looked up together in a single request, so a list of two hundred sites costs the same as one. Up to 1000 places.
Outputs
attributionobject- Credit to show wherever this data appears.
coverage_notetext- Set only when something had no reading, explaining why. Empty otherwise.
elevation_range_feetnumberelevation_range_metersnumber- How far the highest place sits above the lowest.
highestobjectlowestobjectplace_countnumberplaceslist- Every place, in the order given.
places_without_datanumber- How many places had no reading.
Example output
{
"attribution": {
"text": "Elevation data courtesy of Open-Elevation",
"url": "https://open-elevation.com"
},
"coverage_note": null,
"elevation_range_feet": 16981.6,
"elevation_range_meters": 5176.0,
"highest": {
"elevation_feet": 15620.1,
"elevation_meters": 4761.0,
"in_coverage": true,
"label": "Mont Blanc",
"latitude": 45.8326,
"longitude": 6.8652
},
"lowest": {
"elevation_feet": -1361.5,
"elevation_meters": -415.0,
"in_coverage": true,
"label": "Dead Sea",
"latitude": 31.5,
"longitude": 35.5
},
"place_count": 2,
"places": [
{
"elevation_feet": 15620.1,
"elevation_meters": 4761.0,
"in_coverage": true,
"label": "Mont Blanc",
"latitude": 45.8326,
"longitude": 6.8652
},
{
"elevation_feet": -1361.5,
"elevation_meters": -415.0,
"in_coverage": true,
"label": "Dead Sea",
"latitude": 31.5,
"longitude": 35.5
}
],
"places_without_data": 0
}