---
title: "Get a resort's live status"
method: GET
path: "/ski/resorts/{id}"
tags: ["Ski"]
---

# Get a resort's live status

`GET /ski/resorts/{id}`

## Request

- Base URL: `https://status.live/api/v1`
- URL: `https://status.live/api/v1/ski/resorts/{id}`
- Auth: none required

Every lift's status from the resort's own lift board, official road conditions on its access routes (where we have a source), model weather and snow at the lower and upper lift elevations, webcams (the resort's own first; some with their position on the mountain) and nearby resorts.

## Path parameters

- `id` string, required

## Query parameters

- `wait_ms` integer

## Response `200`

OK

- object
  - `resort` object
    - `id` string, required
    - `name` string, required
    - `country` string, nullable
    - `region` string, nullable
    - `location` Location, nullable
      - `lat` number, required
      - `lon` number, required
    - `elevation` object, nullable
      - `lower_m` number
      - `upper_m` number, nullable
    - `passes` string[]
    - `url` string, uri, required
    - `api_url` string, uri, required
    - `opening` string, date, nullable: Opening day, while the season has not started
    - `website` string, uri, nullable
  - `lifts` union
    - Lifts
      - `as_of` string, date-time, nullable, required: When it was read from the source (UTC)
      - `age_s` integer, nullable, required: Its age in seconds
      - `stale` boolean, required: Older than about three refreshes of its source
      - `state` 'reported' | 'none_listed' | 'source_error': `none_listed`: the board lists no lifts, usually off-season (not "closed"). `source_error`: unknown.
      - `stale_reason` string: The board didn't answer just now; this is its last good reading
      - `error` string: Why the board could not be read
      - `last_listed` object: The last time the board listed lifts (when it lists none now)
        - `as_of` string, date-time
        - `lifts` integer
      - `counts` object, nullable
        - `open` integer
        - `hold` integer
        - `scheduled` integer
        - `closed` integer
        - `total` integer
      - `items` object[]
        - `name` string
        - `status` 'open' | 'hold' | 'scheduled' | 'closed'
      - `source` Source
        - `name` string, required
        - `url` string, uri
        - `license` string
    - Loading: Not ready within ?wait_ms; still loading, ask again shortly.
      - `state` 'loading', required
  - `roads` union
    - Roads
      - `as_of` string, date-time, nullable, required: When it was read from the source (UTC)
      - `age_s` integer, nullable, required: Its age in seconds
      - `stale` boolean, required: Older than about three refreshes of its source
      - `state` 'reported' | 'source_error'
      - `source` Source
        - `name` string, required
        - `url` string, uri
        - `license` string
      - `items` object[]
        - `road` string
        - `clear` boolean: No restriction
        - `text` string: The source's own words
        - `code` string: e.g. Caltrans chain control R-2
        - `since` string
    - Loading: Not ready within ?wait_ms; still loading, ask again shortly.
      - `state` 'loading', required
  - `weather` union
    - Weather
      - `as_of` string, date-time, nullable, required: When it was read from the source (UTC)
      - `age_s` integer, nullable, required: Its age in seconds
      - `stale` boolean, required: Older than about three refreshes of its source
      - `model` unknown
      - `source` Source
        - `name` string, required
        - `url` string, uri
        - `license` string
      - `days` object[]
        - `date` string, date
        - `conditions` string
        - `max_c` number
        - `min_c` number
        - `snow_cm` number
        - `precip_chance` number: Percent
        - `precip_type` string
        - `sunrise_local` string
        - `sunset_local` string
      - `snow` object: Ski resorts: model snow at the lower and upper lift elevations
        - `glacier` boolean
        - `lower` SnowAt
          - `elevation_m` number
          - `depth_m` number, nullable: Absent on glaciers
          - `past_7d_cm` number
          - `past_30d_cm` number
          - `next_7d_cm` number
        - `upper` SnowAt
          - `elevation_m` number
          - `depth_m` number, nullable: Absent on glaciers
          - `past_7d_cm` number
          - `past_30d_cm` number
          - `next_7d_cm` number
    - Loading: Not ready within ?wait_ms; still loading, ask again shortly.
      - `state` 'loading', required
  - `webcams` union
    - ResortWebcams: A ski resort's webcams in two groups, as its page shows them. `resort`: cameras we know are the resort's own (curated from its site). `road`: road and nearby: highway cameras on the access routes (Caltrans) and every other camera around, including any we can't confirm is the resort's.
      - `resort` Webcam[], required
        - `name` string, required
        - `kind` 'official' | 'road' | 'nearby': official: the place's own; road: on an access road; nearby: towns and coast around. Not on ski resorts, whose two groups say it (ResortWebcams)
        - `image_url` string, uri, nullable: Full-size current still
        - `thumb_url` string, uri, nullable: Still at tile size (640 px)
        - `player_url` string, uri: Embeddable live player page
        - `hls_url` string, uri: Live HLS stream (road cameras)
        - `timelapse_url` string, uri: Embeddable day timelapse (Windy's)
        - `source_url` string, uri, nullable: The camera's own page
        - `credit` string, nullable
        - `km` number
        - `location` Location, nullable
          - `lat` number, required
          - `lon` number, required
        - `near` string: The lift or base it shows
        - `approx_location` boolean
        - `lift_line` boolean: A lift line is in view
      - `road` Webcam[], required
        - `name` string, required
        - `kind` 'official' | 'road' | 'nearby': official: the place's own; road: on an access road; nearby: towns and coast around. Not on ski resorts, whose two groups say it (ResortWebcams)
        - `image_url` string, uri, nullable: Full-size current still
        - `thumb_url` string, uri, nullable: Still at tile size (640 px)
        - `player_url` string, uri: Embeddable live player page
        - `hls_url` string, uri: Live HLS stream (road cameras)
        - `timelapse_url` string, uri: Embeddable day timelapse (Windy's)
        - `source_url` string, uri, nullable: The camera's own page
        - `credit` string, nullable
        - `km` number
        - `location` Location, nullable
          - `lat` number, required
          - `lon` number, required
        - `near` string: The lift or base it shows
        - `approx_location` boolean
        - `lift_line` boolean: A lift line is in view
    - Loading: Not ready within ?wait_ms; still loading, ask again shortly.
      - `state` 'loading', required
  - `nearby` object[]
    - `id` string
    - `name` string
    - `km` number
    - `api_url` string, uri
  - `meta` Meta
    - `generated_at` string, date-time, required
    - `api_version` 'v1', required
    - `terms` string, uri, required
    - `attribution` string, required: Show this where you show the data
    - `sources` Source[], required
      - `name` string, required
      - `url` string, uri
      - `license` string

## Other responses

- `404`: Unknown id. `suggestions` lists close matches.
- `429`: Rate limited: 120 requests a minute per IP. Wait `Retry-After` seconds.

---

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