---
title: "Get a surf spot's conditions"
method: GET
path: "/surf/{id}"
tags: ["Surf"]
---

# Get a surf spot's conditions

`GET /surf/{id}`

## Request

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

Waves now from the nearest NOAA NDBC buoy within 150 km (`measured: true`), else model values; tides (NOAA predictions, or model); the swell forecast; weather; webcams.

## Path parameters

- `id` string, required

## Query parameters

- `wait_ms` integer

## Response `200`

OK

- object
  - `spot` SurfSpot
    - `id` string
    - `name` string
    - `area` string
    - `country` string
    - `location` Location, nullable
      - `lat` number, required
      - `lon` number, required
    - `timezone` string
    - `url` string, uri
    - `api_url` string, uri
  - `now` object
    - `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_nearby' | 'source_error'
    - `measured` boolean
    - `buoy` object
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `waves` object, nullable
      - `height_m` number
      - `period_s` number, nullable
      - `from` union: Compass point or degrees it comes from, as reported
        - string
        - number
    - `swell` object, nullable
      - `height_m` number
      - `period_s` number, nullable
      - `from` union: Compass point or degrees it comes from, as reported
        - string
        - number
    - `wind_waves` object, nullable
      - `height_m` number
      - `period_s` number, nullable
      - `from` union: Compass point or degrees it comes from, as reported
        - string
        - number
    - `water_c` number, nullable
    - `wind` object, nullable
      - `speed_ms` number
      - `gust_ms` number, nullable
      - `from_deg` number, nullable
    - `model_wind` object
      - `speed_kmh` number
      - `from_deg` number
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `tides` object, nullable
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
    - `station` object, nullable
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `events` object[]
      - `time_local` string
      - `type` 'high' | 'low'
      - `height_m` number: Above mean lower low water (NOAA) or model
  - `forecast` union
    - object[]
      - `date` string, date
      - `wave_min_m` number
      - `wave_max_m` number
      - `swell` object, nullable
        - `height_m` number
        - `period_s` number, nullable
        - `from` union: Compass point or degrees it comes from, as reported
          - string
          - number
      - `morning_wind_kmh` number, nullable
      - `morning_wind_from_deg` number, nullable
    - 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
    - Webcam[]
      - `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
  - `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)
