---
title: "Get a harbor's conditions"
method: GET
path: "/marine/{id}"
tags: ["Marine"]
---

# Get a harbor's conditions

`GET /marine/{id}`

## Request

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

Beta. Not for navigation. NWS advisories and coastal waters forecast for its zone, wind and waves now (NDBC), water temperature, tide and current predictions (NOAA).

## Path parameters

- `id` string, required

## Query parameters

- `wait_ms` integer

## Response `200`

OK

- object
  - `harbor` object
    - `id` string
    - `name` string
    - `region` string
    - `water` string, nullable
    - `location` Location, nullable
      - `lat` number, required
      - `lon` number, required
    - `timezone` string
    - `url` string, uri
    - `api_url` string, uri
    - `zone` object, nullable
      - `id` string
      - `name` string
  - `advisories` object, nullable
    - `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'
    - `items` object[]
      - `event` string
      - `headline` string, nullable
      - `ends_local` string, nullable
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `wind` object, nullable
    - `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
    - `station` object
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `speed_kt` number
    - `gust_kt` number, nullable
    - `from_deg` number, nullable
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `waves` object, nullable
    - `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
    - `station` object
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `height_m` number
    - `period_s` number, nullable
    - `from_deg` number, nullable
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `water` object, nullable
    - `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
    - `temp_c` number
    - `station` object, nullable
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `forecast` object, nullable
    - `issued` string, date-time
    - `periods` object[]
      - `name` string
      - `text` string
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `tides` object, nullable
    - `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
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `currents` object, nullable
    - `station` object, nullable
      - `id` string
      - `name` string
      - `km` number: Distance from the place
    - `events` object[]
      - `time_local` string
      - `type` 'flood' | 'ebb' | 'slack'
      - `speed_kt` number
    - `source` Source
      - `name` string, required
      - `url` string, uri
      - `license` string
  - `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
  - `beta` unknown
  - `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)
