The Camino elevation dataset
Measured elevation profiles for all ten Camino de Santiago routes, plus the stage tables and a per-route summary. 44,497 elevation samples and 210 stages, as plain CSV, free to reuse under the ODbL. We publish it because we needed it and could not find it.
Free to reuse, under the Open Database Licence (ODbL) 1.0. Copy it, change it, sell things built on it. Two conditions: credit both Caminantes and OpenStreetMap, with a link where the medium allows one, and if you publish a database derived from it, release that under the ODbL too. Ready-made credit line, in HTML and plain text.
The files
| File | Rows | What is in it |
|---|---|---|
| camino-routes.csv | 10 | One row per route: both lengths, ascent, descent, minimum and maximum elevation, stage count, longest stage, ascent per kilometre. |
| camino-elevation-profiles.csv | 44,497 | The full profiles: route, distance along the route in kilometres, elevation in metres, one row per 100 m. |
| camino-stages.csv | 210 | Every stage of every route: where it starts, where it ends, how long it is, and how far along the route that leaves you. |
There is also one JSON file per route at /data/elevation/<route_id>.json, which is what the elevation profile tool reads. It is delta encoded to keep it small, so the CSV above is the friendlier starting point.
What is in it
| Route | route_id | distance_km | sampled_length_km | ascent_m | stages |
|---|---|---|---|---|---|
| Vía de la Plata | via_de_la_plata | 994.6 | 994.6 | 11,724 | 47 |
| Camino del Norte | camino_del_norte | 824.6 | 832.2 | 14,641 | 40 |
| Camino Francés | camino_frances | 768.4 | 768.4 | 10,450 | 36 |
| Camino Portugués | camino_portugues | 605.5 | 605.5 | 6,839 | 28 |
| Camino Mozárabe | camino_mozarabe | 418.5 | 418.0 | 4,617 | 18 |
| Camino Primitivo | camino_primitivo | 304.5 | 306.5 | 6,776 | 14 |
| Camino de Invierno | camino_invierno | 264.3 | 262.9 | 4,948 | 13 |
| Camino Inglés | camino_ingles | 110.1 | 110.5 | 1,802 | 6 |
| Camino Finisterre | camino_finisterre | 84.5 | 84.2 | 1,433 | 5 |
| Camino Lebaniego | camino_lebaniego | 66.4 | 66.5 | 2,134 | 3 |
Why there are two lengths
Because they measure different things, and a dataset that quietly picked one would be hiding its most useful caveat. distance_km is the published length, the sum of the stage legs, and it is the figure the rest of this site uses. sampled_length_km is the length of the line as sampled every 100 m while measuring elevation. They differ on eight routes out of ten, by up to 7.6 km.
Neither is wrong. If you are computing gradients, use the sampled length, because it is the axis the elevations sit on. If you are telling somebody how far they will walk, use the published one.
How it was measured
The route lines are split into stages and sampled every 100 m. Each sample point is looked up against the SRTM 30 m elevation dataset through api.opentopodata.org. Ascent is summed from the smoothed series rather than the raw one, because SRTM is noisy point to point and summing raw differences inflates the total. The current build is from 2026-08-17.
What that means for accuracy. SRTM is a satellite elevation model with a real vertical accuracy measured in metres, so treat any single point as approximate. Sampling at a fixed interval also picks up a little climb that nobody walks, because the model steps between two points. That affects all ten routes equally, so it does not move their order, but it does mean the totals sit at the upper end rather than the lower. The comparison between routes is the trustworthy part.
Licence and attribution
The ODbL is not a licence we picked from a menu. The route geometry is derived from OpenStreetMap, OpenStreetMap is ODbL, and a derived database of ODbL data is offered under ODbL in turn. Elevation values come from SRTM, which is in the public domain, and the measuring in between is ours.
If you use it, credit both. On a web page, paste this:
<p>Elevation and stage data from
<a href="https://caminantes.co/">Caminantes</a>
(<a href="https://caminantes.co/data/camino-elevation/">dataset</a>),
<a href="https://opendatacommons.org/licenses/odbl/1-0/">ODbL</a>.
Route and place data ©
<a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>,
ODbL. Elevations from SRTM 30 m.</p>If you are writing the credit yourself, these are the URLs:
| Link the words | To |
|---|---|
| Caminantes | https://caminantes.co/ |
| the dataset | https://caminantes.co/data/camino-elevation/ |
| ODbL | https://opendatacommons.org/licenses/odbl/1-0/ |
| OpenStreetMap contributors | https://www.openstreetmap.org/copyright |
Anywhere a link is not possible, in print or in a paper, the same line without the markup does the job:
Elevation and stage data from Caminantes (caminantes.co), ODbL. Route and place data © OpenStreetMap contributors, ODbL. Elevations from SRTM 30 m.
In practice that means you are free to copy, adapt and redistribute it, including commercially, provided you attribute it and share any derived database under the same terms. A link is the friendliest way to do that online and it is what we would ask for, though the licence asks only that the credit be reasonably visible, not that it be clickable. If you publish something built on it we would like to see it, at hello@caminantes.co, though nothing requires you to tell us.
Citing it
The dataset is archived on Zenodo, which gives it a DOI, so it can be cited the way any other dataset is:
Kramer, A. (2026). Camino de Santiago elevation and stage dataset: ten routes measured [Data set]. Caminantes. https://doi.org/10.5281/zenodo.22262648
That is the concept DOI, and it always resolves to the newest version of the data, so a citation written today still points at something after the next rebuild. If you need the exact numbers you downloaded rather than the latest ones, each release on Zenodo carries its own version DOI as well, and that is the one to pin.
What is not in it
Coordinates. This dataset gives distance along the route and elevation at that distance, not latitude and longitude, so it will let you draw a profile or compute a gradient but not navigate. Accommodation, opening hours and anything that changes week to week are also out, because a static file is the wrong shape for data that goes stale.