OnTheSnow.com Snow Report Scraper avatar

OnTheSnow.com Snow Report Scraper

Pricing

from $150.00 / 1,000 results

Go to Apify Store
OnTheSnow.com Snow Report Scraper

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

Piquno

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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.com resort 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

FieldTypeDefaultDescription
countrystring"united-states"Country to scrape. Leave empty if using custom URLs.
statusFilterstring"open"open / weekends / closed / permanently-closed / all
maxResortsinteger100Cap on results per run. 0 = no limit.
includeDetailEnrichmentbooleantrueFetch each resort's page for the killer fields (coords, comments, full history, webcams). Disable for a much faster, listing-only run.
customResortUrlsarray[]Specific resort URLs to scrape. Overrides country.
concurrencyinteger5Parallel requests during detail enrichment.
unitsstring"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

FieldDescription
uuidOnTheSnow internal ID
nameResort name
shortNameShort version (e.g. "Mammoth" instead of "Mammoth Mountain Ski Area")
slugURL-safe identifier
urlDirect link to snow report page
region, regionSlugState / province / region
country, state, countryCodeCountry and state codes
corporateNameOperating company name
latitude, longitudeGPS coordinates
address, city, zipFull address
phone, website, twitterContact details
imageHeader photo URL
timezoneOffsetHoursLocal timezone offset from UTC

Current status

FieldDescription
status"Open" / "Closed (off-season)" / "Weekends only" / "Permanently closed" etc.
statusCodeNumeric code (1–6)
openingDate, closingDateProjected season dates
lastUpdatedWhen the resort last reported conditions (ISO 8601)

Snow conditions (today)

FieldDescription
baseDepth, midDepth, summitDepthCurrent snow depth at each elevation
snowLast24h, snowLast48h, snowLast72hFresh snowfall windows
surfaceTypeSurface conditions (Packed Powder, Spring Snow, etc.)
historicalDepthAveragesWhat depth this resort usually has on this date — for "above/below average" analysis

Daily history & forecast

FieldDescription
recentSnowfallArray of 8 days' historical daily snowfall: [{date, snow}]
recentReportedStartDate, recentLastModifiedReporting window timestamps
forecastArray of 8 days' forecast daily snowfall: [{date, snow}]
weatherDailyDetailed daily weather (high/low temp, wind speed/direction/gusts, weather type) for ~15 days history + forecast
todayWeatherToday's summary (temp at base/summit, wind, snow forecast)

Mountain operations

FieldDescription
liftsOpen, liftsTotalLift counts
liftDetailsPer-lift names, types and statuses (when reported)
runsOpen, runsTotal, runsOpenPercentTrail counts
terrainBreakdown by difficulty: beginner/intermediate/advanced/expert — total runs, total length km, total % of mountain, plus open metrics
scheduleOperating hours by day of week (0 = Monday)

Media & comments

FieldDescription
snowReporterCommentNarrative text from resort staff — current conditions in their own words
webcamsArray of {title, image, videoStreamUrl, lastUpdated, isFeatured} — includes YouTube embed URLs for live streams
trailMapUrlTrail 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 snowLast24h exceeds a threshold
  • Ski-trip planners — combine forecast + historicalDepthAverages to 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 + openingDate to 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 includeDetailEnrichment is on.
  • Off-season data: closed resorts haven't been refreshing snow conditions, so many of their fields are null. Their openingDate and 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: false for 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-scraper once 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).