---
title: "Tidal harmonic constituents"
method: GET
path: "/api/v1/environment/noaa-tides/station/{id}/harmonic-constituents"
tags: ["Environment"]
---

# Tidal harmonic constituents

`GET /api/v1/environment/noaa-tides/station/{id}/harmonic-constituents`

Published harmonic constituents for a CO-OPS station - 37 classical tidal constituents including M2, S2, N2, K1, O1, M4, K2, and others - with amplitude, phase (GMT and local), and angular speed. These are the inputs the prediction engine uses to synthesize tide levels, and are published so downstream researchers can reproduce predictions independently. Attribution: NOAA CO-OPS Tides and Currents (api.tidesandcurrents.noaa.gov).

## Path parameters

- `id` string, required — 7-digit CO-OPS station identifier.

## Response `200`

Harmonic constituents table with amplitude, phase, and speed.

- EnvelopeNoaaTidesHarmonicsPayload
  - `data` NoaaTidesHarmonicsPayload, required — Full harmonic-constituent listing for a station.
    - `station_id` string, required — Station identifier.
    - `units` string, nullable — Units for the amplitude values (`feet` or `meters`).
    - `count` integer, required — Number of constituents returned (37 for most primary stations).
    - `constituents` NoaaTidesHarmonicConstituent[], required — Array of harmonic constituents with amplitude, phase, and speed.
      - `number` integer, nullable — Upstream constituent ordinal (1-37).
      - `name` string, nullable — Constituent short name (e.g. `M2`, `S2`, `N2`, `K1`).
      - `description` string, nullable — Long-form constituent description (e.g. `Principal lunar semidiurnal constituent`).
      - `amplitude` number, nullable — Amplitude in the reported `units` (feet or meters).
      - `phase_gmt` number, nullable — Phase angle in degrees relative to GMT.
      - `phase_local` number, nullable — Phase angle in degrees relative to local standard time.
      - `speed` number, nullable — Angular speed in degrees per hour.
      - `comments` string, nullable — Epoch and averaging notes from the harmonic-analysis process.
    - `attribution` string, required — Upstream attribution string.
  - `meta` SugraMeta, required — Metadata attached to every /api/v1/* response envelope.
    - `endpoint` string, required — Requested endpoint path.
    - `data_time` string, required — ISO 8601 UTC timestamp of the source data, not of the request.
    - `response_time` string, required — ISO 8601 UTC timestamp when this response was produced.
    - `provider` string, required — API name and version.
    - `source` string, nullable — Identifier of the primary upstream source used for this response.
    - `attribution` string, nullable — Human-readable attribution mandated by an upstream source (e.g. a securities regulator or self-regulatory organization). Present only on responses whose source requires the owner and source to be clearly identified. Do not remove or alter it when using the response.
    - `fallback_used` boolean, nullable — True when the primary source failed and a fallback produced the data.
    - `fallback_chain` string[], nullable — Ordered list of sources attempted, in the order they were tried.
    - `cached` boolean, nullable — True when this response was served from the internal cache.
    - `stale` boolean, nullable — True when the cached response was returned after the upstream rate-limited or errored. Clients can use this to detect degraded data.

## Other responses

- `401` — Missing or invalid `x-api-key` header.
- `422` — Validation Error
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/revisions/4e2740743eb4/schema)
