---
title: "Get resort details"
method: GET
path: "/api/v1/resorts/{slug}"
tags: ["Resorts"]
---

# Get resort details

`GET /api/v1/resorts/{slug}`

## Request

- Base URL: `https://www.snowsure.ai`
- URL: `https://www.snowsure.ai/api/v1/resorts/{slug}`
- Auth: none declared

Returns detailed information for a specific ski resort including multi-model forecasts, historical data, and current conditions.

**Forecast entitlement (SS-W-318).** Days 1–7 and the blended total are public. Days 8–14 and the per-model series (`models`, `byModel`, `comparableWindow`, `modelCoverageDays`) require an entitled caller: SnowSure Pro, or a signed-in free reader asking about a resort in their My Mountains. An unauthenticated request receives the free window — `forecast.daily` cut to seven days, `total14dCm` equal to the total of those days, and `forecastHorizonDays: 7` stating the span. The field keeps its name so existing consumers keep reading a number; read `forecastHorizonDays` to know what it covers. There is no partner key: every caller follows the same rule.

## Path parameters

- `slug` string, required

## Query parameters

- `include` string

## Response `200`

Successful response

- ResortDetailResponse
  - `meta` object
    - `source` string
    - `timestamp` string, date-time
  - `data` object
    - `name` string: Resort name
    - `slug` string: URL-friendly identifier
    - `aliases` string[]: Alternate slugs that resolve to this resort on /api/v1/resorts/{slug}. The list emits only canonical slugs, so match against slug AND aliases before concluding a resort is absent.
    - `country` string: Country where the resort is located
    - `region` string: Geographic region
    - `coordinates` object
      - `lat` number: Latitude
      - `lng` number: Longitude
    - `elevation` object
      - `summit` integer: Summit elevation in meters
      - `base` integer: Base elevation in meters
      - `vertical` integer: Vertical drop in meters
    - `stats` object
      - `runs` integer: Number of ski runs
      - `lifts` integer: Number of lifts
      - `skiableAcres` integer: Skiable terrain in acres
      - `pisteKm` number, nullable: Total marked piste length in km, as the resort publishes it. A length, never an area. Null when unknown. Detail response only.
      - `annualSnowfall` string: Average annual snowfall
    - `conditions` object
      - `snowDepthCm` number: Current BASE-band snow depth in centimeters — the value sort=depth ranks on. A measured mid/summit headline is on /resorts/{slug} only, so the board stays like-for-like.
      - `snowDepthElevationBand` 'base' | 'null', nullable: Always base when snowDepthCm is set (SS-W-201 ranking rule).
      - `snowfall24hCm` number: Snowfall in last 24 hours (cm)
      - `snowfall7dCm` number: Snowfall in the PAST 7 days (cm). Not to be confused with forecast7dCm, which is the week ahead.
      - `forecast7dCm` number, nullable: FORWARD 7-day blended snowfall forecast (cm) — the industry comparison window, and the field sort=forecast7d ranks on. Equals the sum of the first 7 daily rows from the forecast endpoint, to 0.1cm. null (never 0) when the blend has no data for this resort; 0 means a forecast of no snow.
      - `forecastPeak` object, nullable: The single biggest snowfall day inside the forward 7-day window — forecast7dCm's window, NOT forecast14dCm's. null when no snow is forecast. Since SS-W-207 the object carries windowDays so the pair can never be read against the wrong total.
        - `date` string, date
        - `cm` number
        - `windowDays` integer: How many forward days this peak was the biggest of. Always 7 on this object. For the biggest day of a 14-day total, read forecast.peak on /api/v1/resorts/{slug}, which is chosen from the daily rows that endpoint serves and carries its own windowDays.
      - `forecastHorizonDays` 7 | 14: How many forward days `forecast14dCm` covers for THIS caller (SS-W-318, SS-W-378). 14 for an entitled caller — SnowSure Pro, or a resort in a signed-in reader's My Mountains; 7 otherwise, and then `forecast14dCm` holds the seven-day total, the same figure as `forecast7dCm`. Read this before naming the number: a seven-day total must never be labelled as a fortnight.
      - `forecast14dCm` number, nullable: Sum over the forecast horizon the caller is entitled to; equals `forecast7dCm` when `forecastHorizonDays` is 7 (anonymous and free callers). Read `forecastHorizonDays` before calling this a 14-day total (SS-W-1460). The blended forecast total (cm, 1 dp) over the window `forecastHorizonDays` states: the forward 14 days for an entitled caller, or the free seven days — equal to `forecast7dCm` — for one without the fortnight. The key keeps its name so existing consumers keep reading a number. For an entitled caller it is the same value as forecast.total14dCm on /api/v1/resorts/{slug}. A per-day blend over the models covering each day, so it can sit outside the per-model totals, which each cover only their own model's horizon. null (never 0) when the blend has no data.
      - `temperature` number: Current temperature in Celsius
      - `weatherConditions` string: Current weather description
    - `snowSure` object
      - `score` integer: SnowSure Score (0-100)
      - `rating` 'Outstanding' | 'Superb' | 'Excellent' | 'Good' | 'Solid' | 'Fair' | 'Limited' | 'null', nullable: Rating label for `score`, from SnowSure's score bands. null when the resort is unscored, or when the rating is withheld because the resort is not operating today.
      - `ratingColor` '#0ea5e9' | '#22c55e' | '#10b981' | '#14b8a6' | '#0d9488' | '#f59e0b' | '#94a3b8' | 'null', nullable: Hex colour of `rating`'s band, from the same SnowSure score bands as the label. Every band has its own colour: Outstanding #0ea5e9 · Superb #22c55e · Excellent #10b981 · Good #14b8a6 · Solid #0d9488 · Fair #f59e0b · Limited #94a3b8 (each is at least 4.5:1 against a slate-900 #0f172a background). Render this colour rather than mapping labels to colours yourself, so a change to the bands reaches every partner at once. null exactly when `rating` is null.
      - `tagline` string, nullable: SnowSure's published condition summary. On /api/v1/resorts it is the same value as snowSure.tagline on /api/v1/resorts/{slug}, and null when the detail publishes no snowSure block (closed, pre-season or post-season).
      - `trend` 'improving' | 'stable' | 'declining' | 'null', nullable: SnowSure's published trend. On /api/v1/resorts it is the same value as snowSure.trend on /api/v1/resorts/{slug}; null when that detail block is null.
    - `links` object: Official resort links. Every field except `snowsure` is nullable: a value is only returned when it validates as a real URL, so absence means "not known" rather than "not applicable". Coverage of 445 resorts as of 2026-07-28 — website 429, instagram 364, trailMap 429, webcamPage 413, trailMapPdf 10.
      - `website` string, uri, nullable: Resort official website
      - `instagram` string, uri, nullable: Canonical profile URL, always in the form https://instagram.com/<handle> regardless of how it is stored
      - `trailMap` string, uri, nullable: Trail map image or page URL
      - `trailMapPdf` string, uri, nullable: Trail map PDF, when one is published separately from trailMap
      - `trailMaps` object[], nullable: Additional named trail maps, when the resort publishes more than one
        - `title` string
        - `url` string, uri
      - `webcamPage` string, uri, nullable: Resort webcam landing page
      - `snowsure` string, uri: SnowSure resort page URL
    - `apresSki` object, nullable: Après-ski highlights.
      - `top` string, nullable: Leading après-ski venue and a short description of it
    - `heroImage` string, uri: Resort hero image URL
    - `isOpen` boolean: True if the resort is currently open for skiing today. Year-round glacier resorts (Matterhorn Ski Paradise, Saas-Fee, Hintertux, Cervinia) always return true regardless of seasonClosingDate.
    - `status` string, nullable: Editorial status from CMS: typically 'Live', 'Active', 'Data Collection', or 'Archived'. Anything other than the first three is treated as closed.
    - `seasonClosingDate` string, date, nullable: Scheduled or operator-confirmed end-of-season date (YYYY-MM-DD). Resorts past this date are treated as closed unless flagged as year-round.
    - `closure` object, nullable: Closure metadata, null when the resort is open. /api/v1/resorts serves the same object as /api/v1/resorts/{slug}: isClosed true for a closed season, false (with a reason and label) for a resort that is not open but not season-ended.
      - `isClosed` boolean
      - `reason` 'editorial' | 'season-end' | 'pre-season' | 'out-of-season' | 'not-operating' | 'unknown' | 'null', nullable: Why the resort is not open. 'season-end' = past seasonClosingDate; 'pre-season' = before its opening; 'editorial' = status not operational; 'out-of-season' = hemisphere off-season; 'not-operating' = in its window but not operating; 'unknown' = no season dates and no operating signal.
      - `label` string, nullable: Human-readable close label, e.g. 'Closed for the season since May 3'.
    - `description` string: Resort description
    - `forecast` object: SnowSure's multi-model snow forecast. `daily` and `total14dCm` are the blend — the per-day mean over the models covering each day, summed. `models` are the per-model totals, each over only the days that model reaches (`modelCoverageDays`), so they are not comparable with one another until `comparableWindow` cuts them to a shared window. Every model-keyed object here uses the same seven keys: ecmwf, gfs, gem, jma, icon, meteoFrance, metNorway.
      - `total7dCm` number, nullable: SnowSure’s blended total (cm, 1 dp) over the next seven days from the resort’s local today — the free window, the same figure every list publishes as forecast7dCm (SS-W-369).
      - `forecastHorizonDays` 7 | 14: The span of `daily` and of `total14dCm` for THIS caller (SS-W-318, SS-W-378): 14 for an entitled caller, 7 otherwise. Always present, so a consumer never has to infer the window from the row count.
      - `pointElevationM` number, nullable: Metres. The elevation the headline series (`daily`, `snowsureDaily`, `total14dCm`) was made at: the resort's summit, the top of its highest lift, on data published since 2026-10-18 (SS-W-1995); the mid-upper forecast point, base + 0.67 × vertical, between 2026-10-13 and then (SS-W-1780); the summit, or the base where no summit height is known, before that. Read with `pointBand`.
      - `pointBand` 'mid-upper' | 'summit' | 'mid' | 'base' | 'null', nullable: What `pointElevationM` is on this mountain: `summit` (the top of the highest lift) on data published since 2026-10-18; `mid-upper`, the forecast point, between 2026-10-13 and then; `base` where no summit height is known. The three bands resorts report at are served per band under `snowsureDailyByBand`.
      - `total14dCm` number, nullable: Sum over the forecast horizon the caller is entitled to; equals `total7dCm` when `forecastHorizonDays` is 7 (anonymous and free callers). Read `forecastHorizonDays` before calling this a 14-day total: the name is historical, and kept so a shipped consumer keeps reading a number (SS-W-1460). SnowSure’s blended total (cm, 1 dp) over the window `forecastHorizonDays` states — the sum of `daily[].snowfall`. For a caller without the fortnight that is the seven served days, and the value equals `total7dCm`; the key keeps its name so existing consumers keep reading a number. It can legitimately exceed every per-model total in `models`, because a model that stops before a storm contributes nothing to the days it does not reach. Carries the orographic factor k when `forecastContract.data.orographic.applied` is true, as do `daily[].snowfall` and the per-model totals; `forecastContract.data.orographic.unliftedTotalCm` is the total without it. Null when no model reported.
      - `peak` object, nullable: Added SS-W-207. Biggest single snowfall day of the SAME window total14dCm covers — the rows in `daily`. Distinct from conditions.forecastPeak, which is the biggest day of the forward 7 only; both carry windowDays, so the two can be told apart. null when no snow is forecast.
        - `date` string, date, required
        - `snowfallCm` number, required: Blended snowfall on that day (cm, 1 dp) — the same value that day carries in `daily`.
        - `windowDays` integer, required: How many forward days this peak was the biggest of — the length of `daily`: 14 for an entitled caller, 7 for one without the fortnight (see `forecastHorizonDays`).
      - `models` object: Per-model snowfall totals (cm), each summed over only the days that model covers (see modelCoverageDays). A model with no covered day is null, never 0: a model that never reached the window did not forecast no snow. The mobile resort detail’s forecast.total14d.<model> follows the same rule.
        - `ecmwf` number, nullable
        - `gfs` number, nullable
        - `gem` number, nullable
        - `jma` number, nullable
        - `icon` number, nullable
        - `meteoFrance` number, nullable
        - `metNorway` number, nullable
        - `ukmo` number, nullable
        - `nbm` number, nullable
        - `nam` number, nullable
        - `hrrr` number, nullable
        - `meteoSwiss` number, nullable
        - `icon2i` number, nullable
      - `byModel` object, nullable: Only present with `include=byModel`. The per-model DAILY series behind `models` — the seven models the SnowSure blend is made of — keyed by the same model keys. `total` is the identical number `models.<key>` carries, so the series and the headline cannot disagree, including the rule that a model with no covered day is null. `snowfall: null` is a day that model does not cover and is never flattened to 0. Null when SnowSure holds no per-model series for the resort.
        - `ecmwf` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `gfs` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `gem` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `jma` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `icon` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `meteoFrance` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `metNorway` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `ukmo` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `nbm` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `nam` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `hrrr` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `meteoSwiss` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
        - `icon2i` object
          - `total` number, nullable: Identical to `models.<key>` — this model’s own-horizon total (cm), or null for no coverage.
          - `forecasts` object[]: This model’s daily snowfall, in date order.
            - `date` string, date
            - `snowfall` number, nullable: Snowfall this model forecasts for the day (cm). Null = the model does not cover the day.
      - `modelHorizonDays` integer, nullable: Days in the window the per-model totals in `models` are cut to. Null when the per-model daily series is unavailable.
      - `modelCoverageDays` object, nullable: Days of `modelHorizonDays` each per-model total in `models` actually covers, keyed like `models`; a value is null when the model covers none. A model whose horizon ends early has a shorter total, not a forecast of no snow on the days it does not reach. Null when the per-model daily series is unavailable.
        - `ecmwf` integer, nullable
        - `gfs` integer, nullable
        - `gem` integer, nullable
        - `jma` integer, nullable
        - `icon` integer, nullable
        - `meteoFrance` integer, nullable
        - `metNorway` integer, nullable
        - `ukmo` integer, nullable
        - `nbm` integer, nullable
        - `nam` integer, nullable
        - `hrrr` integer, nullable
        - `meteoSwiss` integer, nullable
        - `icon2i` integer, nullable
      - `comparableWindow` object, nullable: Like-for-like model comparison: totals over the first `days` days, which every listed model covers, plus the SnowSure blend over the same days. `confidence.spreadCm`/`meanCm`/`modelCount` are measured over this window. Null when no two models share a day.
        - `days` integer
        - `models` string[]: The models compared, by model key.
        - `modelTotalsCm` object: Each listed model’s total (cm) over the same `days` days. Keyed by model key; only the models in `models` appear.
        - `ensembleTotalCm` number: The SnowSure blend over those same `days` days (cm).
      - `confidence` object, nullable: How much the models agree, calibrated by SnowSure’s verified skill for the resort’s region. Null when fewer than two models reported. Measured over `comparableWindow` when there is one, so a short-horizon model cannot manufacture disagreement.
        - `score` number: 0–1; higher is more trustworthy (agreement × regional skill).
        - `label` 'high' | 'medium' | 'low'
        - `spreadCm` number: max − min across the compared model totals (cm).
        - `meanCm` number: Mean of the compared model totals (cm).
        - `modelCount` integer: How many models the spread and mean are measured over.
        - `regionSkill` number, nullable: Verified regional skill folded in (0–1), or null when SnowSure has no verified corpus for the region.
        - `calibrated` boolean: True when verified regional skill was applied, rather than agreement alone.
        - `basis` string: One sentence naming what the figure was computed from.
        - `windowDays` integer: Days the spread/mean/count are measured over. Absent when the payload carries no comparable window.
      - `daily` object[]: The blended daily forecast, in date order — fourteen rows for an entitled caller, the seven served days otherwise (`forecastHorizonDays`). `snowfall` is the per-day mean over the models covering that day; the envelope fields are present only for days inside the blend.
        - `date` string, date
        - `tempMax` number: Daily maximum temperature (°C).
        - `tempMin` number: Daily minimum temperature (°C).
        - `snowfall` number: Blended snowfall for the day (cm) — the mean over the models that cover it.
        - `snowfallLoCm` number: Lowest snowfall (cm) any contributing model puts on this day. Absent for days outside the blend window — no envelope rather than a fabricated one. Pair with modelCount: at 1 this collapses onto snowfall and is one model’s opinion, not agreement.
        - `snowfallHiCm` number: Highest snowfall (cm) any contributing model puts on this day. Absent for days outside the blend window.
        - `modelCount` integer: How many models cover this day — the day’s denominator. Absent for days outside the blend window.
        - `precip` number: Total precipitation for the day (mm water).
        - `precipProb` number: Probability of precipitation for the day (%).
        - `wind` number: Daily maximum wind speed (km/h).
        - `code` integer: WMO weather interpretation code for the day.
        - `conditions` string: The day in words, led by the snowfall amount when there is one.
        - `desc` string: Same sentence as `conditions`; kept for older readers.
        - `sunrise` string: Local sunrise, ISO 8601. Absent when upstream did not supply it.
        - `sunset` string: Local sunset, ISO 8601. Absent when upstream did not supply it.
    - `historic` object
      - `fiveYearAverage` number: 5-year average seasonal snowfall (cm)
      - `thirtyYearAverage` number: 30-year average seasonal snowfall (cm)
      - `trend` string: Historical trend summary
    - `snow` object: Resolved snow depths and recent accumulation, with the source and tier behind each number.
      - `depthCm` number, nullable: Headline depth (cm). Base-band by default. Since SS-W-201 a fresh measured station/operator reading at mid or summit leads over a modelled base; depthElevationBand, depthSource and depthSourceLabel say which. Rank on baseDepthCm, not this.
      - `depthIn` number, nullable
      - `depth` string, nullable: Display-formatted depth
      - `depthSource` 'station' | 'operator' | 'manual' | 'resort' | 'model' | 'null', nullable: Lane behind depthCm: station (measured network), operator/manual (resort-entered), resort (resort's published report), model (Open-Meteo). Precedence: a fresh station/operator reading leads over a model base; otherwise the base-band lane.
      - `depthSourceLabel` string, nullable: Public name of that lane: DGA, SNOTEL, Snowy Hydro, SLF, GHCN, Resort Reported, Open-Meteo.
      - `depthElevationBand` 'base' | 'mid' | 'summit' | 'null', nullable: Band depthCm was measured or modelled at. base unless a measured mid/summit leads.
      - `depthElevationM` number, nullable: Elevation (m) of the depthCm reading: the station's own for a station, else the band's resort elevation. Null when unknown.
      - `depthStationName` string, nullable: Station behind a station-sourced depthCm.
      - `baseDepthCm` number, nullable: Base-band depth (cm) — what 'deepest base' rankings and the SnowSure score use. Equals depthCm unless a measured mid/summit leads.
      - `depthVsAvgPct` number, nullable: depthCm as % of the stored historical depth average. Published only when depthCm is base-band (the average's band) and no depthDisagreement; see depthVsAvgBasis.
      - `depthVsAvgBasis` object, nullable: What depthVsAvgPct is computed against, or why it is null.
        - `averageCm` number, nullable
        - `averageBand` 'base' | 'mid' | 'summit'
        - `readingBand` 'base' | 'mid' | 'summit' | 'null', nullable
        - `readingSource` string, nullable
        - `suppressedReason` 'no_depth' | 'no_average' | 'average_too_small' | 'ratio_unbounded' | 'band_mismatch' | 'depth_disagreement' | 'null', nullable
      - `depthDisagreement` object, nullable: Set when a modelled base is under 50% of a measured mid/summit, or a measured base is deeper than the modelled summit. The measured lead is kept and depthVsAvgPct is withheld.
        - `kind` 'model_base_below_half_measured_upper' | 'measured_base_above_model_summit'
        - `measured` object
          - `band` string
          - `cm` number
          - `source` string
        - `model` object
          - `band` string
          - `cm` number
        - `ratio` number
        - `note` string
      - `reportedDepth` number, nullable: Operator-reported depth (cm)
      - `modelDepth` number, nullable: Modelled depth (cm)
      - `depthBySource` object, nullable
      - `depthSources` string[], nullable
      - `last24hCm` number, nullable
      - `last24hIn` number, nullable
      - `last24h` string, nullable
      - `last24hSource` string, nullable
      - `last48hCm` number, nullable
      - `last48hIn` number, nullable
      - `last7dCm` number, nullable
    - `currentConditions` object, nullable: Latest observed weather at the resort.
      - `temperature` number, nullable
      - `conditions` string, nullable
      - `windSpeed` number, nullable
      - `humidity` number, nullable
      - `lastUpdated` string, date-time, nullable: When the data behind these conditions was captured: the later of the weather snapshot's capture time and its lift-data update time. Never the request time or the time the conditions were resolved, and never a time in the future. Equal to conditions.lastUpdated for the same resort on /api/v1/resorts. null when the snapshot carries neither time. Per-field observation times are on data.conditions.
    - `conditionsByElevation` object, nullable: Conditions split by mountain band.
      - `base` object, nullable
      - `mid` object, nullable
      - `summit` object, nullable
    - `operations` object, nullable: Lift and terrain opening counts.
      - `liftsOpen` integer, nullable
      - `liftsTotal` integer, nullable
      - `liftPercentOpen` number, nullable
      - `runsOpen` integer, nullable
      - `runsTotal` integer, nullable
      - `terrainPercentOpen` number, nullable
      - `acreageOpen` number, nullable
      - `groomedRuns` integer, nullable
    - `operatorReport` object, nullable: The operator's own published report, when SnowSure has verified it. Null when no operator report is available.
      - `verified` boolean
      - `source` string, nullable
      - `updatedAt` string, date-time, nullable
      - `baseDepthCm` number, nullable
      - `summitDepthCm` number, nullable
      - `liftsOpen` integer, nullable
      - `liftsTotal` integer, nullable
      - `attributionLabel` string, nullable
    - `temporaryHold` object, nullable: Set when the resort is open for the season but not operating right now (weather hold, closure by the resort, etc.). Null when there is no hold.
      - `kind` string
      - `reason` string, nullable
      - `label` string, nullable
      - `since` string, date-time, nullable
      - `until` string, date-time, nullable
      - `source` string, nullable
      - `note` string, nullable
    - `seasonDates` object, nullable: Season opening/closing rows for display, with an estimate caveat flag.
      - `rows` object[]
      - `showEstimateNote` boolean
    - `seasonOpeningDate` string, date, nullable: Effective season opening date.
    - `activeOperatingPeriod` object, nullable: Named operating window currently in effect (e.g. a summer glacier or spring session). Null outside such a window.
      - `label` string
      - `accessNote` string, nullable
    - `webcams` object[]: Webcams for the resort. The dedicated /webcams endpoint returns the same cameras with absolute thumbnail URLs.
      - `name` string
      - `url` string
      - `type` string
      - `credit` string, nullable
      - `thumbnailUrl` string, nullable
    - `gallery` object[]: Licensed resort photography.
      - `url` string
      - `credit` string, nullable
    - `booking` object[]: Booking and lift-ticket partner links.
      - `kind` string
      - `partner` string
      - `label` string
      - `url` string
      - `note` string, nullable
    - `forecastContract` object, nullable: The versioned forecast envelope — the forecast counterpart to the conditions contract, self-describing via its own `schema` field (https://www.snowsure.ai/.well-known/schemas/resort-forecast-v1.json). `schemaVersion` versions this payload independently of `info.version`. Since 1.4.0, `data.orographic` says whether its snowfall figures carry the orographic factor k (the extra precipitation a mountain wrings out at the forecast point's height, applied since 14 Oct 2026), k's value and source, and the total without it.
      - `schemaVersion` string
      - `schema` string, uri
      - `meta` object
      - `data` object
    - `statusLabel` string, nullable: Human-readable status sentence, e.g. "Projected to open November 15, 2026" or "Open for the season · Closed today". Null when the plain `status` needs no qualification.
    - `operatingToday` boolean, nullable: Whether the resort is actually operating today. Distinct from `isOpen` (in-season): a resort can be open for the season but not operating today. Null when unknown.
    - `recommendableToday` boolean: Whether SnowSure would recommend skiing here today — requires both operating status and adequate conditions.

## Other responses

- `404`: Resort not found
- `500`: Server error

---

[API](https://skmtc.dev/snowsure/apis/snowsure-api.md) · [All operations](https://skmtc.dev/snowsure/apis/snowsure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/snowsure/apis/snowsure-api/revisions/dcbcdbb3df50?raw)
