Bright Sky Alerts API

The Alerts API from Bright Sky — 1 operation(s) for alerts.

Operations 1

GET /alerts Alerts #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bright-sky:bright-sky-alerts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bright-sky-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bright Sky Alerts API
  description: 'Bright Sky is a free and open-source weather API. It aims to provide an easy-to-use gateway to weather data that the DWD – Germany''s meteorological service – publishes on their open data server.


    The public instance at `https://api.brightsky.dev/` is free-to-use for all purposes, **no API key required**! Please note that the DWD''s Terms of Use apply to all data you retrieve through the API.


    > This documentation is generated from an OpenAPI specification. The current version is available from https://api.brightsky.dev/openapi.json.


    ## Quickstart


    * Check out `/current_weather` if you want to know what the weather''s like _right now_.

    * Check out `/weather` for hourly weather observations and forecasts.

    * Check out `/radar` if you''re looking for a high-resolution rain radar.

    * Check out `/alerts` if you''re interested in weather alerts.


    ... or keep reading below for some background information.


    ## Good to Know


    * **Geographical coverage**: due to its nature as German meteorological service, the observations published by the DWD have a strong focus on Germany. The _forecasts_ cover the whole world, albeit at a much lower density outside of Germany.

    * **Historical coverage**: Bright Sky serves historical data going back to January 1st, 2010. If you need data that goes further back, check out our infrastructure repository to easily set up your own instance of Bright Sky!

    * **Source IDs**: Bright Sky''s _source IDs_ are a technical artifact and – unlike the DWD station IDs and WMO station IDs – have no meaning in the real world. When making requests to Bright Sky, try to avoid them and supply lat/lon or station IDs instead.


    ## Useful Links


    * Bright Sky source code and issue tracking

    * Bright Sky infrastructure configuration

    * DWD Open Data landing page

    * Additional explanation files for DWD Open Data, including:

    * List of main observation stations

    * List of additional observation stations

    * List of MOSMIX stations

    * List of meteorological parameters

    * DWD Open Data FAQ (German)

    * DWD Copyright information


    ## Data Sources


    All data available through Bright Sky is taken or derived from data on the DWD open data server:


    * **Current weather / SYNOP**:

    * https://opendata.dwd.de/weather/weather_reports/synoptic/germany/json/

    * **Hourly weather**:

    * Historical: https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/

    * Current day: https://opendata.dwd.de/weather/weather_reports/poi/

    * Forecasts: https://opendata.dwd.de/weather/local_forecasts/mos/

    * **Radar**:

    * https://opendata.dwd.de/weather/radar/composite/rv/

    * **Alerts**:

    * https://opendata.dwd.de/weather/alerts/cap/COMMUNEUNION_DWD_STAT/'
  contact:
    name: Jakob de Maeyer
    url: https://brightsky.dev/
    email: jakob@brightsky.dev
  license:
    name: MIT License
    identifier: MIT
  version: 2.2.12
servers:
- url: https://api.brightsky.dev
tags:
- name: Alerts
paths:
  /alerts:
    get:
      summary: Alerts
      description: 'Returns a list of weather alerts for the given location, or all weather

        alerts if no location given.


        If you supply either `warn_cell_id` or both `lat` and `lon`, Bright Sky

        will return additional information on that cell in the `location` field.

        Warn cell IDs are municipality (_Gemeinde_) cell IDs.


        ### Notes


        * The DWD divides Germany''s area into roughly 11,000 "cells" based on

        municipalities (_Gemeinden_), and issues warnings for each of these

        cells. Most warnings apply to many cells.

        * Bright Sky will supply information on the cell that a given lat/lon

        belongs to in the `location` field.

        * There is also a set of roughly 400 cells based on districts

        (_Landkreise_) that is not supported by Bright Sky.

        * The complete list of cells can be found on the DWD GeoServer (see below).


        ### Additional resources


        * Live demo of a simple interactive alerts map

        * Source for alerts map demo

        * Map view of all current alerts by the DWD

        * List of municipality cells

        * List of district cells (*not used by Bright Sky!*)

        * Raw data on the Open Data Server

        * DWD Documentation on alert fields and their allowed contents (English)

        * DWD Documentation on alert fields and their allowed contents (German)'
      operationId: getAlerts
      parameters:
      - name: lat
        in: query
        required: false
        schema:
          type: number
          maximum: 90
          minimum: -90
          description: Latitude in decimal degrees.
          examples:
          - 52.52
          - 51.55
          title: Lat
        description: Latitude in decimal degrees.
      - name: lon
        in: query
        required: false
        schema:
          type: number
          maximum: 180
          minimum: -180
          description: Longitude in decimal degrees.
          examples:
          - 13.4
          - 9.9
          title: Lon
        description: Longitude in decimal degrees.
      - name: warn_cell_id
        in: query
        required: false
        schema:
          type: integer
          description: Municipality warn cell ID.
          examples:
          - 803159016
          - 705515101
          title: Warn Cell Id
        description: Municipality warn cell ID.
      - name: tz
        in: query
        required: false
        schema:
          type: string
          description: Timezone in which record timestamps will be presented, as <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">tz database name</a>. Will also be used as timezone when parsing `date` and `last_date`, unless these have explicit UTC offsets. If omitted but `date` has an explicit UTC offset, that offset will be used as timezone. Otherwise will default to UTC.
          examples:
          - Europe/Berlin
          - Australia/Darwin
          - Etc/UTC
          title: Tz
        description: Timezone in which record timestamps will be presented, as <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">tz database name</a>. Will also be used as timezone when parsing `date` and `last_date`, unless these have explicit UTC offsets. If omitted but `date` has an explicit UTC offset, that offset will be used as timezone. Otherwise will default to UTC.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertsResponse'
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
          description: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Alerts
components:
  schemas:
    Location:
      properties:
        warn_cell_id:
          type: integer
          title: Warn Cell Id
          description: Municipality warn cell ID of given location
          examples:
          - 803159016
        name:
          type: string
          title: Name
          description: Municipality name
          examples:
          - Stadt Göttingen
        name_short:
          type: string
          title: Name Short
          description: Shortened municipality name
          examples:
          - Göttingen
        district:
          type: string
          title: District
          description: District name
          examples:
          - Göttingen
        state:
          type: string
          title: State
          description: Federal state name
          examples:
          - Niedersachsen
        state_short:
          type: string
          title: State Short
          description: Shortened federal state name
          examples:
          - NI
      type: object
      title: Location
    Alert:
      properties:
        id:
          type: integer
          title: Id
          description: Bright Sky-internal ID for this alert
          examples:
          - 279977
        alert_id:
          type: string
          title: Alert Id
          description: Unique CAP message identifier
          examples:
          - 2.49.0.0.276.0.DWD.PVW.1691344680000.2cf9fad6-dc83-44ba-9e88-f2827439da59
        status:
          type: string
          enum:
          - actual
          - test
          title: Status
          description: Alert status
        effective:
          type: string
          format: date-time
          title: Effective
          description: Alert issue time
          examples:
          - '2023-08-06T17:58:00+00:00'
        onset:
          type: string
          format: date-time
          title: Onset
          description: Expected event begin time
          examples:
          - '2023-08-07T08:00:00+00:00'
        expires:
          type: string
          format: date-time
          title: Expires
          description: Expected event end time
          examples:
          - '2023-08-07T19:00:00+00:00'
          nullable: true
        category:
          type: string
          enum:
          - met
          - health
          title: Category
          description: Alert category, meteorological message (`met`) or public health related message (`health`)
          nullable: true
        response_type:
          type: string
          enum:
          - prepare
          - allclear
          - none
          - monitor
          title: Response Type
          description: Code denoting type of action recommended for target audience
          nullable: true
        urgency:
          type: string
          enum:
          - immediate
          - future
          title: Urgency
          description: Alert time frame
          nullable: true
        severity:
          type: string
          enum:
          - minor
          - moderate
          - severe
          - extreme
          title: Severity
          description: Alert severity
          nullable: true
        certainty:
          type: string
          enum:
          - observed
          - likely
          title: Certainty
          description: Alert certainty
          nullable: true
        event_code:
          type: integer
          title: Event Code
          description: DWD event code
          examples:
          - 51
          nullable: true
        event_en:
          type: string
          title: Event En
          description: Label for DWD event code (English)
          examples:
          - wind gusts
          nullable: true
        event_de:
          type: string
          title: Event De
          description: Label for DWD event code (German)
          examples:
          - WINDBÖEN
          nullable: true
        headline_en:
          type: string
          title: Headline En
          description: Alert headline (English)
          examples:
          - Official WARNING of WIND GUSTS
        headline_de:
          type: string
          title: Headline De
          description: Alert headline (German)
          examples:
          - Amtliche WARNUNG vor WINDBÖEN
        description_en:
          type: string
          title: Description En
          description: Alert description (English)
          examples:
          - 'There is a risk of wind gusts (level 1 of 4).

            Max. gusts: 50-60 km/h; Wind direction: west; Increased gusts: near showers and in exposed locations < 70 km/h'
        description_de:
          type: string
          title: Description De
          description: Alert description (German)
          examples:
          - Es treten Windböen mit Geschwindigkeiten zwischen 50 km/h (14 m/s, 28 kn, Bft 7) und 60 km/h (17 m/s, 33 kn, Bft 7) aus westlicher Richtung auf. In Schauernähe sowie in exponierten Lagen muss mit Sturmböen bis 70 km/h (20 m/s, 38 kn, Bft 8) gerechnet werden.
        instruction_en:
          type: string
          title: Instruction En
          description: Additional instructions and safety advice (English)
          examples:
          - 'NOTE: Be aware of the following possible dangers: The downpours can cause temporary traffic disruption.'
          nullable: true
        instruction_de:
          type: string
          title: Instruction De
          description: Additional instructions and safety advice (German)
          examples:
          - 'ACHTUNG! Hinweis auf mögliche Gefahren: Während des Platzregens sind kurzzeitig Verkehrsbehinderungen möglich.'
          nullable: true
      type: object
      title: Alert
    NotFoundResponse:
      properties:
        detail:
          type: string
          title: Detail
          default: Error details
      type: object
      title: NotFoundResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AlertsResponse:
      properties:
        alerts:
          items:
            $ref: '#/components/schemas/Alert'
          type: array
          title: Alerts
        location:
          $ref: '#/components/schemas/Location'
          nullable: true
      type: object
      title: AlertsResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError