The hybrid data pipeline
Different regions publish different feeds. Instead of forcing a single mediocre API onto every resort in the world, we route each country to the best source available and fall back to AI search when no live feed exists. Every page tells you which source it used.
| Region / country | Primary source | Refresh cadence | What we pull |
|---|---|---|---|
| United States & Canada | RapidAPI Ski Resorts | Every 48 hours | Base depth, 24h snowfall, open lifts & trails |
| Norway | fnugg.no official feed | Every 48 hours | Snow depth, lift status, run count, conditions text |
| France | ANMSM (Assoc. Nationale des Maires des Stations) | Every 48 hours | Snow depth top & base, open lifts, fresh snow |
| Sweden (Skistar) | Skistar public price API | Daily | Lift pass prices (SEK × 4.9 day-of-week formula) |
| Rest of world (AT, IT, CH, JP, AR, etc.) | Perplexity Sonar / Sonar Pro | Every 96 hours | Snow depth, open lifts, status, 7-day forecast |
| Weather (all resorts) | OpenWeather One Call | Live on page load, server-cached 30 min | Temperature, conditions, wind, forecast |
Snow depth & conditions
Pulled from the official regional feed where one exists (RapidAPI in North America, fnugg in Norway, ANMSM in France). For the rest of the world we use Perplexity Sonar Pro to search resort websites in real time and extract the numbers.
Cache TTLs: 48h for regional feeds, 96h for AI fallback. If we can't pull a non-numerical answer, the resort is marked “expired” rather than served with stale data.
Lift pass prices
Verified by Perplexity Sonar against the resort's official 2026/27 pricing page. We require seven consecutive identical results before a price update goes live — this filters out hallucinated or one-off numbers.
Skistar resorts (Sweden, Norway) are computed from their public API using day-of-week multipliers. Every price card on the site shows the exact verification date.
Weather forecasts
OpenWeather One Call API, requested live on every page load and server-cached for 30 minutes to keep things fast without going stale. Wind, temperature, conditions and 7-day forecasts all come from the same source.
AI search expert
Google Gemini 3 Flash powers the “Ask Where to Ski” assistant — it searches our verified resort database (not the open web) and returns ranked shortlists with reasoning. Results are cached for 24 hours via SHA-256 exact-match lookup to keep responses instant.
How we keep the data honest
Visible timestamps
Scheduled refresh
Source attribution
The request pipeline, step by step
When you load a resort page, here's the exact path your request takes — from your browser down to the source feed and back, with cache layers at every hop.
- 1Browser request
User opens a resort page
- 2Edge cache
30-min weather cache hit?
- 3Region router
Pick best source for the country
- 4Source feed
RapidAPI / fnugg / ANMSM / Perplexity
- 5Verify + cache
TTL stamp + return to user
Per-country source map
Every country we cover, the live feed we use, and how often it refreshes. If a country isn't listed it falls back to the global Perplexity Sonar lane.
| Country | Source | Snow TTL | Price source |
|---|---|---|---|
| 🇺🇸 United States | RapidAPI Ski Resorts | 48 h | Perplexity Sonar (7-result rule) |
| 🇨🇦 Canada | RapidAPI Ski Resorts | 48 h | Perplexity Sonar (7-result rule) |
| 🇫🇷 France | ANMSM official feed | 48 h | Perplexity Sonar (7-result rule) |
| 🇳🇴 Norway | fnugg.no | 48 h | Skistar API + Perplexity |
| 🇸🇪 Sweden | Perplexity + Skistar | 96 h | Skistar API (SEK × 4.9, daily) |
| 🇫🇮 Finland | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇦🇹 Austria | Perplexity Sonar Pro | 96 h | Perplexity Sonar |
| 🇨🇭 Switzerland | Perplexity Sonar Pro | 96 h | Perplexity Sonar |
| 🇮🇹 Italy | Perplexity Sonar Pro | 96 h | Perplexity Sonar |
| 🇪🇸 Spain & 🇦🇩 Andorra | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇩🇪 Germany | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇸🇰 Slovakia & 🇵🇱 Poland | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇧🇬 Bulgaria & 🇷🇴 Romania | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇯🇵 Japan | Perplexity Sonar Pro | 96 h | Perplexity Sonar |
| 🇨🇱 Chile & 🇦🇷 Argentina | Perplexity Sonar | 96 h | Perplexity Sonar |
| 🇳🇿 New Zealand & 🇦🇺 Australia | Perplexity Sonar | 96 h | Perplexity Sonar |
Exact refresh schedule
| Data type | Cache TTL | Cron schedule | Notes |
|---|---|---|---|
| Weather (live) | 30 min | On-demand | Fetched on every page load, edge-cached |
| Snow depth (regional APIs) | 48 h | Twice daily (06:00 & 18:00 UTC) | RapidAPI, fnugg, ANMSM |
| Snow depth (Perplexity fallback) | 96 h | Thursdays + on-demand | Lower-priority lane to manage API spend |
| Lift pass prices | Per season | Daily verification cron | Requires 7 consecutive matching results |
| Skistar prices | 24 h | Daily | Computed live from Skistar public API |
| Powder alerts | — | 2× daily | Triggers on ≥20 cm/24h or ≥30 cm/7d (5-day cooldown) |
| Season opening dates | Per season | Weekly | Auto-updates only if current season end date has passed |
| AI search responses | 24 h | On-demand | SHA-256 exact-match cache lookup |
Why we built it this way
Look at any other ski directory and try to find a 2026/27 lift price for a mid-tier resort in Bulgaria, Romania or the Japanese Alps. You'll find a 2019 number scraped once and never touched again — or no number at all. We built the hybrid pipeline because nobody else was treating ski data like a live product.
The result: 675+ resorts across 41 countries, with timestamps and sources you can actually trust. If a number on this site is wrong, the “Updated” date will tell you when we last checked — and our cron will fix it within 48–96 hours.
Explore the live data
Frequently asked questions
Where does Where to Ski get its snow and lift data?
We combine four sources: the RapidAPI Ski Resorts feed for North American mountains, fnugg.no for Norwegian resorts, ANMSM's official feed for French resorts, and Perplexity Sonar Pro (an AI search engine) as a global fallback. Each source is refreshed on its own schedule and tagged so you can see which one fed the page.
How often are lift pass prices updated?
Lift pass prices are re-verified twice per season against the resort's official website using Perplexity Sonar with a 7-day consecutive-result requirement. Skistar resorts are recomputed daily from their public API (SEK price × 4.9, SEK/EUR=11). Every price page shows the date it was last verified.
Are weather and snow depth real-time?
Weather is fetched live from OpenWeather every time you load a resort page (cached server-side for 30 minutes). Snow depths come from the regional feed for the resort's country and refresh every 48 hours; the global AI fallback refreshes every 96 hours. Every reading carries a visible 'Updated' timestamp.
How is Where to Ski different from other ski resort sites?
Most ski directories publish a price once and forget it. We re-verify prices and snow conditions on a schedule, expose the source and timestamp on every page, and run a hybrid hybrid pipeline (regional API → AI fallback) so even small resorts in Bulgaria or Japan get up-to-date numbers — not a 2019 brochure scrape.