NOAA CO-OPS Stations API

NOAA CO-OPS station metadata, sensors, datums, and configuration

OpenAPI Specification

noaa-co-ops-stations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NOAA CO-OPS Data Retrieval Benchmarks Stations API
  description: Retrieves real-time and historical observational and prediction data from NOAA CO-OPS coastal and Great Lakes monitoring stations. Products include water levels, tidal predictions, meteorological observations (wind, air pressure, air and water temperature, humidity, conductivity, salinity, visibility), and currents data.
  version: 1.0.0
  contact:
    name: CO-OPS User Services
    email: co-ops.userservices@noaa.gov
  license:
    name: Public Domain
    url: https://www.noaa.gov/disclaimer
servers:
- url: https://api.tidesandcurrents.noaa.gov/api/prod
  description: NOAA CO-OPS Data Retrieval API
tags:
- name: Stations
  description: NOAA CO-OPS station metadata, sensors, datums, and configuration
paths:
  /stations/{stationId}.json:
    get:
      operationId: getStation
      summary: Get a single station
      description: Returns metadata for a single NOAA CO-OPS monitoring station by station ID.
      parameters:
      - name: stationId
        in: path
        required: true
        description: 7-digit station identifier (e.g., 9414290) or currents station code.
        schema:
          type: string
          example: '9414290'
      - name: units
        in: query
        required: false
        description: Unit system for returned values.
        schema:
          type: string
          enum:
          - english
          - metric
          default: metric
      - name: expand
        in: query
        required: false
        description: Comma-separated list of sub-resources to embed.
        schema:
          type: string
          example: details,sensors,datums,notices
      responses:
        '200':
          description: Station metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationResponse'
        '404':
          description: Station not found
      tags:
      - Stations
  /stations/{stationId}/{resource}.json:
    get:
      operationId: getStationResource
      summary: Get a station sub-resource
      description: Returns a specific sub-resource (datums, benchmarks, harmonic constituents, sensors, etc.) for a given station.
      parameters:
      - name: stationId
        in: path
        required: true
        description: 7-digit station identifier.
        schema:
          type: string
          example: '9414290'
      - name: resource
        in: path
        required: true
        description: The sub-resource type to retrieve.
        schema:
          type: string
          enum:
          - datums
          - supersededdatums
          - harcon
          - sensors
          - details
          - notices
          - disclaimers
          - benchmarks
          - tidepredoffsets
          - floodlevels
          - bins
          - deployments
          - currentpredictionoffsets
      - name: units
        in: query
        required: false
        description: Unit system for returned values.
        schema:
          type: string
          enum:
          - english
          - metric
          default: metric
      - name: bin
        in: query
        required: false
        description: Specific bin number for current harmonic constituents.
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: Station sub-resource data
          content:
            application/json:
              schema:
                type: object
                description: Resource-specific response object
        '404':
          description: Station or resource not found
      tags:
      - Stations
components:
  schemas:
    Station:
      type: object
      properties:
        id:
          type: string
          description: Station ID
          example: '9414290'
        name:
          type: string
          description: Station name
          example: San Francisco
        lat:
          type: number
          format: double
          description: Station latitude in decimal degrees
          example: 37.8063
        lng:
          type: number
          format: double
          description: Station longitude in decimal degrees
          example: -122.4659
        affiliation:
          type: string
          description: Organization affiliation
          example: NWLON
        portscode:
          type: string
          description: PORTS system code if applicable
          example: sf
        products:
          type: object
          description: Available data products at this station
        disclaimers:
          type: array
          items:
            type: object
        notices:
          type: array
          items:
            type: object
        self:
          type: string
          description: URL of this station resource
          example: https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations/9414290.json
    StationResponse:
      type: object
      properties:
        stations:
          type: array
          items:
            $ref: '#/components/schemas/Station'