Skip to content
open·pisteopen data
SearchWhat's insideAPIDownloads{ } Use the data
Free & open · Updated 4× daily

Live conditions for every French ski resort open for anyone to use

Search and filter 148 stations by snow depth, open lifts, weather and avalanche risk. The same data powers a free JSON API and daily Parquet exports — grab a resort, or grab the whole mountain range.

Search resortsUse the data →
148Resorts
2,251Lifts tracked
4,772Slopes
5tablesOpen Parquet
The dataset

A complete snapshot of every resort bulletin

Every scrape captures the full state of a resort, not just a status light. Same shape for humans browsing and machines querying.

lifts Lifts

  • Name, sector, type
  • Opening & closing times
  • Status: open · scheduled · on hold · closed

pistes Pistes

  • Name, sector, difficulty
  • Grooming status
  • Opening & closing times

weather Weather

  • Snow depth & quality
  • AM / PM temperature
  • Wind speed & direction
  • Avalanche risk (1–5)

roads Roads & meta

  • Road surface condition
  • Equipment requirements
  • Season open / close dates

148 stations across the Alps, Pyrenees & beyond.

Mostly France, plus a handful in Italy, Switzerland and Andorra, and growing.

Including Val Thorens, La Plagne, Chamonix, Alpe d'Huez, Megève, Les Arcs, Tignes, Courchevel, Les Deux Alpes, Serre-Chevalier and many more.

Alps
~103
Pyrenees
~27
Massif Central
~7
Vosges
~5
Jura
~5
For builders

Open API. Open files. No keys.

Everything you see above is queryable. Hit the REST API for current state, or download daily Parquet snapshots and query them straight from DuckDB or Polars.

REST API

JSON · OpenAPI 3.1
GET/resortsAll resorts + summary
GET/resorts/:slugFull current state
GET/healthService & coverage
GET/openapi.jsonSpec

Try it

curl
shell
curl https://open-piste.raed.workers.dev/resorts/val-thorens | jq

Query the Parquet exports in place

DuckDB
sql
SELECT resort_slug, name, lift_type, status, opening_time, closing_time
FROM 'https://pub-97642627f73e48d389691a5634ec1971.r2.dev/snapshots/2026/03/24/lifts.parquet'
WHERE status = 'open'
ORDER BY resort_slug;

Or load straight into Python

Polars
python
import polars as pl

url = "https://pub-97642627f73e48d389691a5634ec1971.r2.dev/snapshots/2026/03/24/pistes.parquet"
pistes = pl.read_parquet(url)
pistes.filter(pl.col("difficulty") == "black").group_by("resort_slug").len()

Daily Parquet snapshots — free download

5 tables · nightly
lifts
.parquet
pistes
.parquet
weather
.parquet
roads
.parquet
resorts
.parquet

A _SUCCESS marker confirms each day is complete · an index.json lists every available date.

Freshness

Predictable, normalized, complete.

Scrapes
4× daily — 4 AM, 7 AM, 1 PM & 8 PM UTC.
Exports
Parquet runs nightly at 8 PM UTC, with a completeness marker.
Normalized
All values in English, every timestamp in UTC.
open·piste
SearchAPIDownloadsSchema
data is free (as in 🍺) to use