OnTheSnow.com Snow Report Scraper
Pricing
from $150.00 / 1,000 results
OnTheSnow.com Snow Report Scraper
Scrape daily snow reports and live ski conditions from OnTheSnow.com — 2,000+ ski resorts worldwide. Snow depths, fresh snowfall (8-day history + 8-day forecast), open lifts/trails, surface conditions, snow reporter comments, webcams, and depth-vs-historical-average.
Pricing
from $150.00 / 1,000 results
Rating
0.0
(0)
Developer
Piquno
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape daily snow reports and live ski conditions from OnTheSnow.com — the world's most popular snow & ski conditions site (2,000+ resorts worldwide). Get snow depths, fresh snowfall, lifts open, trails open, surface conditions, snow reporter comments, webcams and more.
No API key required. Works for any ski country — US, Canada, Japan, France, Austria, Switzerland, Italy and 20+ others.
What makes this Actor different
Most ski Actors give you static resort facts — elevation, slope length, prices. This one gives you what's happening right now:
- ✅ Today's snow depth at base, mid-mountain, and summit
- ✅ Fresh snowfall — last 24h, 48h, 72h, plus full 8-day daily history
- ✅ 8-day snowfall forecast
- ✅ Open lifts and trails (counts + percentage)
- ✅ Current surface conditions (Packed Powder, Spring Snow, Machine Groomed, etc.)
- ✅ Snow reporter narrative comments — what the resort staff actually said today
- ✅ Depth vs historical average — is this snowpack better or worse than usual?
- ✅ Live webcam streams (YouTube embed URLs) for every resort
- ✅ Terrain breakdown by difficulty (beginner/intermediate/advanced/expert)
- ✅ Operating schedule by day of week
- ✅ GPS coordinates, address, phone — for mapping and trip planning
Perfect companion to the static Ski Resorts Worldwide Scraper — that one tells you which resort to visit, this one tells you if it's good there right now.
What you can scrape
- Any country: 27 ski countries pre-listed (US, Canada, Japan, France, Austria, Switzerland, Italy, Germany, Norway, Sweden, Finland, Spain, Andorra, Czech Republic, Slovakia, Poland, Slovenia, Bulgaria, Romania, UK, Iceland, Australia, New Zealand, Chile, Argentina, South Korea, Turkey)
- Custom resort URLs: paste any specific
onthesnow.comresort URLs to scrape only those - By status: Open only (default), Weekends only, Closed (off-season — useful for projected opening dates), Permanently Closed, or All
Input
| Field | Type | Default | Description |
|---|---|---|---|
country | string | "united-states" | Country to scrape. Leave empty if using custom URLs. |
statusFilter | string | "open" | open / weekends / closed / permanently-closed / all |
maxResorts | integer | 100 | Cap on results per run. 0 = no limit. |
includeDetailEnrichment | boolean | true | Fetch each resort's page for the killer fields (coords, comments, full history, webcams). Disable for a much faster, listing-only run. |
customResortUrls | array | [] | Specific resort URLs to scrape. Overrides country. |
concurrency | integer | 5 | Parallel requests during detail enrichment. |
units | string | "metric" | metric (cm) or imperial (inches) |
Example input
{"country": "japan","statusFilter": "open","maxResorts": 50,"includeDetailEnrichment": true,"units": "imperial"}
Or scrape specific resorts directly:
{"customResortUrls": ["https://www.onthesnow.com/utah/brighton-resort/skireport","https://www.onthesnow.com/colorado/aspen-snowmass/skireport","https://www.onthesnow.com/japan/niseko-united/skireport"]}
Output
Every record is a single resort. With detail enrichment enabled, you get all of these fields:
Identity & location
| Field | Description |
|---|---|
uuid | OnTheSnow internal ID |
name | Resort name |
shortName | Short version (e.g. "Mammoth" instead of "Mammoth Mountain Ski Area") |
slug | URL-safe identifier |
url | Direct link to snow report page |
region, regionSlug | State / province / region |
country, state, countryCode | Country and state codes |
corporateName | Operating company name |
latitude, longitude | GPS coordinates |
address, city, zip | Full address |
phone, website, twitter | Contact details |
image | Header photo URL |
timezoneOffsetHours | Local timezone offset from UTC |
Current status
| Field | Description |
|---|---|
status | "Open" / "Closed (off-season)" / "Weekends only" / "Permanently closed" etc. |
statusCode | Numeric code (1–6) |
openingDate, closingDate | Projected season dates |
lastUpdated | When the resort last reported conditions (ISO 8601) |
Snow conditions (today)
| Field | Description |
|---|---|
baseDepth, midDepth, summitDepth | Current snow depth at each elevation |
snowLast24h, snowLast48h, snowLast72h | Fresh snowfall windows |
surfaceType | Surface conditions (Packed Powder, Spring Snow, etc.) |
historicalDepthAverages | What depth this resort usually has on this date — for "above/below average" analysis |
Daily history & forecast
| Field | Description |
|---|---|
recentSnowfall | Array of 8 days' historical daily snowfall: [{date, snow}] |
recentReportedStartDate, recentLastModified | Reporting window timestamps |
forecast | Array of 8 days' forecast daily snowfall: [{date, snow}] |
weatherDaily | Detailed daily weather (high/low temp, wind speed/direction/gusts, weather type) for ~15 days history + forecast |
todayWeather | Today's summary (temp at base/summit, wind, snow forecast) |
Mountain operations
| Field | Description |
|---|---|
liftsOpen, liftsTotal | Lift counts |
liftDetails | Per-lift names, types and statuses (when reported) |
runsOpen, runsTotal, runsOpenPercent | Trail counts |
terrain | Breakdown by difficulty: beginner/intermediate/advanced/expert — total runs, total length km, total % of mountain, plus open metrics |
schedule | Operating hours by day of week (0 = Monday) |
Media & comments
| Field | Description |
|---|---|
snowReporterComment | Narrative text from resort staff — current conditions in their own words |
webcams | Array of {title, image, videoStreamUrl, lastUpdated, isFeatured} — includes YouTube embed URLs for live streams |
trailMapUrl | Trail map image |
Sample output (Brighton Resort, Utah)
{"uuid": "82","name": "Brighton Resort","slug": "brighton-resort","url": "https://www.onthesnow.com/utah/brighton-resort/skireport","region": "Utah","country": "United States","latitude": 40.59766657,"longitude": -111.5848171,"address": "12601 East Big Cotton Canyon","phone": "(800) 873-5512","status": "Open","statusCode": 1,"baseDepth": 170.2,"snowLast24h": 7.6,"snowLast72h": 22.8,"surfaceType": "Packed Powder","liftsOpen": 4,"liftsTotal": 9,"runsOpen": 23,"runsTotal": 67,"runsOpenPercent": 34,"recentSnowfall": [{"date": "2026-05-03", "snow": 0.0},{"date": "2026-05-04", "snow": 0.0},{"date": "2026-05-10", "snow": 7.6}],"forecast": [{"date": "2026-05-11", "snow": 0.0},{"date": "2026-05-15", "snow": 3.0}],"terrain": {"beginner": {"totalRuns": 16, "totalLengthKm": 14.48, "totalPercent": 24},"intermediate":{"totalRuns": 24, "totalLengthKm": 21.89, "totalPercent": 36},"advanced": {"totalRuns": 18, "totalLengthKm": 10.2, "totalPercent": 27},"expert": {"totalRuns": 9, "totalLengthKm": 8.21, "totalPercent": 13},"overall": {"open": 23, "total": 67, "openPercent": 34}},"historicalDepthAverages": {"base": 153.0, "mid": 0.0, "summit": 132.0},"webcams": [{"title": "Majestic - Brighton Ski Resort","videoStreamUrl": "https://www.youtube.com/embed/XLzKPufaAts","lastUpdated": "2026-05-11T02:04:01+00:00"}],"units": "cm"}
Use cases
- Daily ski-condition dashboards — schedule the Actor to run every morning and feed your app
- Powder alerts — trigger notifications when
snowLast24hexceeds a threshold - Ski-trip planners — combine
forecast+historicalDepthAveragesto recommend the best week to visit - Tour operator dashboards — track lift/run open percentage to advise clients
- Travel agencies & content sites — show real-time conditions on resort pages
- Off-season research — use
statusFilter: closed+openingDateto plan which resorts will be open when
How it works
OnTheSnow.com is a Next.js single-page app — every page embeds a clean JSON blob (__NEXT_DATA__) with all the data its frontend uses. This Actor extracts that JSON directly instead of parsing HTML, which means:
- Faster — no CSS-selector overhead
- More reliable — no breakage when they tweak the layout
- Richer — picks up fields that aren't even rendered visibly (e.g. lift schedules, depth averages, webcam stream URLs)
Limitations
- Pagination cap: when a country has more than 50 resorts in the same status (typically only the "Closed (off-season)" bucket), the listing page returns only the first 50 with full data. The Actor automatically supplements the remainder by enumerating the country's full resort guide and fetching each via detail enrichment — so you still get every resort, but only when
includeDetailEnrichmentis on. - Off-season data: closed resorts haven't been refreshing snow conditions, so many of their fields are
null. TheiropeningDateand identity data are still useful for trip planning. - Country coverage: OnTheSnow's Japanese coverage is shallow (only ~5 major resorts: Niseko, Furano, Hakuba Valley, Kiroro, Rusutsu). For deeper Japan-specific data, use the Ski Resorts Worldwide Scraper (which covers skiresort.info).
Tips
- Default settings give you a fast, useful first run: 100 open resorts in the US with full enrichment.
- For daily monitoring: set
statusFilter: open, schedule the Actor to run every morning, and use webhooks to feed your downstream system. - Run cheaply during off-season: set
includeDetailEnrichment: falsefor a listing-only run that gives you status + projected opening dates at minimum cost. - Combine with our other ski Actor: scrape this for live conditions, scrape
piquno/ski-resorts-worldwide-scraperonce per season for static resort details, and merge by resort name.
Pricing
$0.15 per result — same as the Ski Resorts Worldwide Scraper. Each result is an information-dense record (full daily history + forecast + webcams + reporter comments + terrain breakdown).