Stormglass Weather API

Point weather forecasts and historical weather data

OpenAPI Specification

stormglass-weather-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Stormglass Astronomy Weather API
  description: Stormglass provides a global marine and weather API delivering high-resolution forecasts, historical data, and environmental measurements for any coordinate on Earth. The API supports weather point forecasts, marine data, tidal information, solar and astronomical data, biological oceanographic data, and elevation data. Commonly used for maritime navigation, renewable energy forecasting, outdoor activity planning, and environmental monitoring.
  version: v2
  contact:
    name: Stormglass Support
    url: https://stormglass.io/contact
  termsOfService: https://stormglass.io/terms-and-conditions/
servers:
- url: https://api.stormglass.io/v2
  description: Stormglass API v2
security:
- apiKeyAuth: []
tags:
- name: Weather
  description: Point weather forecasts and historical weather data
paths:
  /weather/point:
    get:
      operationId: getWeatherPoint
      summary: Get Weather Point Forecast
      description: Retrieve hourly weather forecast data for a single coordinate. Returns atmospheric and marine weather parameters including temperature, wind, waves, swell, and precipitation from multiple data sources.
      tags:
      - Weather
      parameters:
      - name: lat
        in: query
        required: true
        schema:
          type: number
          format: float
        description: Latitude of the desired coordinate
      - name: lng
        in: query
        required: true
        schema:
          type: number
          format: float
        description: Longitude of the desired coordinate
      - name: params
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of parameters to retrieve. E.g. airTemperature,windSpeed,waveHeight
      - name: start
        in: query
        required: false
        schema:
          type: string
        description: Timestamp in UTC for first forecast hour. UNIX format or URL-encoded ISO format.
      - name: end
        in: query
        required: false
        schema:
          type: string
        description: Timestamp in UTC for last forecast hour. UNIX format or URL-encoded ISO format.
      - name: source
        in: query
        required: false
        schema:
          type: string
        description: Specify a single source or comma-separated list of sources. E.g. noaa or dwd,noaa
      responses:
        '200':
          description: Hourly weather data returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeatherPointResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/QuotaExceeded'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
components:
  responses:
    QuotaExceeded:
      description: Daily quota exceeded or payment required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication failed. Check your API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnprocessableEntity:
      description: Invalid parameters in the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    SourceValue:
      type: object
      description: A weather parameter value from a specific source
      additionalProperties:
        type: number
        format: float
    MetaData:
      type: object
      description: Metadata about the API request including quota information
      properties:
        cost:
          type: integer
          description: Number of API credits consumed by this request
        dailyQuota:
          type: integer
          description: Your daily API call quota
        requestCount:
          type: integer
          description: Total number of API calls made today
        lat:
          type: number
          format: float
          description: Latitude of the requested coordinate
        lng:
          type: number
          format: float
          description: Longitude of the requested coordinate
        params:
          type: array
          items:
            type: string
          description: List of parameters returned
        start:
          type: string
          description: Start timestamp of the returned data
        end:
          type: string
          description: End timestamp of the returned data
    WeatherPointResponse:
      type: object
      properties:
        hours:
          type: array
          items:
            $ref: '#/components/schemas/WeatherHour'
          description: Hourly weather data
        meta:
          $ref: '#/components/schemas/MetaData'
    Error:
      type: object
      properties:
        errors:
          type: object
          additionalProperties:
            type: string
    WeatherHour:
      type: object
      description: Hourly weather data for one time interval
      properties:
        time:
          type: string
          description: Timestamp in UTC for this data point
        airTemperature:
          $ref: '#/components/schemas/SourceValue'
        windSpeed:
          $ref: '#/components/schemas/SourceValue'
        windDirection:
          $ref: '#/components/schemas/SourceValue'
        gust:
          $ref: '#/components/schemas/SourceValue'
        humidity:
          $ref: '#/components/schemas/SourceValue'
        pressure:
          $ref: '#/components/schemas/SourceValue'
        cloudCover:
          $ref: '#/components/schemas/SourceValue'
        precipitation:
          $ref: '#/components/schemas/SourceValue'
        waveHeight:
          $ref: '#/components/schemas/SourceValue'
        waveDirection:
          $ref: '#/components/schemas/SourceValue'
        wavePeriod:
          $ref: '#/components/schemas/SourceValue'
        swellHeight:
          $ref: '#/components/schemas/SourceValue'
        swellDirection:
          $ref: '#/components/schemas/SourceValue'
        swellPeriod:
          $ref: '#/components/schemas/SourceValue'
        waterTemperature:
          $ref: '#/components/schemas/SourceValue'
        currentSpeed:
          $ref: '#/components/schemas/SourceValue'
        currentDirection:
          $ref: '#/components/schemas/SourceValue'
        visibility:
          $ref: '#/components/schemas/SourceValue'
        seaLevel:
          $ref: '#/components/schemas/SourceValue'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key obtained from your Stormglass account dashboard
externalDocs:
  description: Stormglass API Documentation
  url: https://docs.stormglass.io/