{"openapi":"3.1.0","info":{"title":"Bright Sky","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](https://www.dwd.de/) – Germany's meteorological service – publishes on their [open data server](https://opendata.dwd.de/).\n\nThe 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](https://www.dwd.de/EN/service/legal_notice/legal_notice.html) apply to all data you retrieve through the API.\n\n> This documentation is generated from an OpenAPI specification. The current version is available from https://api.brightsky.dev/openapi.json.\n\n\n## Quickstart\n\n* Check out [`/current_weather`](operations/getCurrentWeather) if you want to know what the weather's like _right now_.\n* Check out [`/weather`](operations/getWeather) for hourly weather observations and forecasts.\n* Check out [`/radar`](operations/getRadar) if you're looking for a high-resolution rain radar.\n* Check out [`/alerts`](operations/getAlerts) if you're interested in weather alerts.\n\n... or keep reading below for some background information.\n\n\n## Good to Know\n\n* **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.\n* **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](https://github.com/jdemaeyer/brightsky-infrastructure) to easily set up your own instance of Bright Sky!\n* **Source IDs**: Bright Sky's _source IDs_ are a technical artifact and – unlike the [DWD station IDs](https://www.dwd.de/DE/leistungen/klimadatendeutschland/stationsliste.html) and [WMO station IDs](https://opendata.dwd.de/climate_environment/CDC/help/stations_list_CLIMAT_data.txt) – 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.\n\n\n## Useful Links\n\n* [Bright Sky source code and issue tracking](https://github.com/jdemaeyer/brightsky/)\n* [Bright Sky infrastructure configuration](https://github.com/jdemaeyer/brightsky-infrastructure/)\n* [DWD Open Data landing page](https://www.dwd.de/EN/ourservices/opendata/opendata.html)\n* [Additional explanation files for DWD Open Data](https://www.dwd.de/DE/leistungen/opendata/hilfe.html?nn=495490&lsbId=627548), including:\n    * [List of main observation stations](https://www.dwd.de/DE/leistungen/opendata/help/stationen/ha_messnetz.xls?__blob=publicationFile&v=1)\n    * [List of additional observation stations](https://www.dwd.de/DE/leistungen/opendata/help/stationen/na_messnetz.xlsx?__blob=publicationFile&v=10)\n    * [List of MOSMIX stations](https://www.dwd.de/DE/leistungen/met_verfahren_mosmix/mosmix_stationskatalog.cfg?view=nasPublication&nn=495490)\n    * [List of meteorological parameters](https://www.dwd.de/DE/leistungen/opendata/help/schluessel_datenformate/kml/mosmix_elemente_pdf.pdf?__blob=publicationFile&v=2)\n* [DWD Open Data FAQ (German)](https://www.dwd.de/DE/leistungen/opendata/faqs_opendata.html)\n* [DWD Copyright information](https://www.dwd.de/EN/service/copyright/copyright_artikel.html)\n\n\n## Data Sources\n\nAll data available through Bright Sky is taken or derived from data on the [DWD open data server](https://opendata.dwd.de/):\n\n* **Current weather / SYNOP**:\n  * https://opendata.dwd.de/weather/weather_reports/synoptic/germany/json/\n* **Hourly weather**:\n  * Historical: https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/\n  * Current day: https://opendata.dwd.de/weather/weather_reports/poi/\n  * Forecasts: https://opendata.dwd.de/weather/local_forecasts/mos/\n* **Radar**:\n  * https://opendata.dwd.de/weather/radar/composite/rv/\n* **Alerts**:\n  * https://opendata.dwd.de/weather/alerts/cap/COMMUNEUNION_DWD_STAT/\n","contact":{"name":"Jakob de Maeyer","url":"https://brightsky.dev/","email":"jakob@brightsky.dev"},"license":{"name":"MIT License","identifier":"MIT"},"version":"2.2.9"},"servers":[{"url":"https://api.brightsky.dev"}],"paths":{"/sources":{"get":{"tags":["Internals"],"summary":"Weather sources (stations)","description":"Return a list of all Bright Sky sources matching the given location\ncriteria, ordered by distance.\n\nYou must supply both `lat` and `lon` _or_ one of `dwd_station_id`,\n`wmo_station_id`, or `source_id`.","operationId":"getSources","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":"max_dist","in":"query","required":false,"schema":{"type":"integer","maximum":500000,"minimum":0,"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`.","examples":[10000],"default":50000,"title":"Max Dist"},"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`."},{"name":"dwd_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["01766","00420,00053,00400"],"title":"Dwd Station Id"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"wmo_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["10315","G005,F451,10389"],"title":"Wmo Station Id"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"source_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority.","examples":["1234","1234,2345"],"title":"Source Id"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority."},{"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/SourcesResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/current_weather":{"get":{"summary":"Current weather","description":"Returns current weather for a given location.\n\nTo set the location for which to retrieve weather, you must supply both\n`lat` and `lon` _or_ one of `dwd_station_id`, `wmo_station_id`, or\n`source_id`.\n\nThis endpoint is different from the other weather endpoints in that it does\nnot directly correspond to any of the data available from the DWD Open Data\nserver. Instead, it is a best-effort solution to reflect current weather\nconditions by compiling [SYNOP observations](/operations/getSynop) from the\npast one and a half hours.","operationId":"getCurrentWeather","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":"max_dist","in":"query","required":false,"schema":{"type":"integer","maximum":500000,"minimum":0,"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`.","examples":[10000],"default":50000,"title":"Max Dist"},"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`."},{"name":"dwd_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["01766","00420,00053,00400"],"title":"Dwd Station Id"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"wmo_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["10315","G005,F451,10389"],"title":"Wmo Station Id"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"source_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority.","examples":["1234","1234,2345"],"title":"Source Id"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority."},{"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."},{"name":"units","in":"query","required":false,"schema":{"enum":["dwd","si"],"type":"string","description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>","default":"dwd","title":"Units"},"description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentWeatherResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/weather":{"get":{"summary":"Hourly weather (including forecasts)","description":"Returns a list of hourly weather records (and/or forecasts) for the time\nrange given by `date` and `last_date`.\n\nTo set the location for which to retrieve records (and/or forecasts), you\nmust supply both `lat` and `lon` _or_ one of `dwd_station_id`,\n`wmo_station_id`, or `source_id`.","operationId":"getWeather","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Timestamp of first weather record (or forecast) to retrieve, in ISO 8601 format. May contain time and/or UTC offset.","examples":["2023-08-07","2023-08-07T08:00+02:00"],"title":"Date"},"description":"Timestamp of first weather record (or forecast) to retrieve, in ISO 8601 format. May contain time and/or UTC offset."},{"name":"last_date","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Timestamp of last weather record (or forecast) to retrieve, in ISO 8601 format. Will default to `date + 1 day`.","examples":["2023-08-08","2023-08-07T23:00+02:00"],"title":"Last Date"},"description":"Timestamp of last weather record (or forecast) to retrieve, in ISO 8601 format. Will default to `date + 1 day`."},{"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":"max_dist","in":"query","required":false,"schema":{"type":"integer","maximum":500000,"minimum":0,"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`.","examples":[10000],"default":50000,"title":"Max Dist"},"description":"Maximum distance of record location from the location given by `lat` and `lon`, in meters. Only has an effect when using `lat` and `lon`."},{"name":"dwd_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["01766","00420,00053,00400"],"title":"Dwd Station Id"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"wmo_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["10315","G005,F451,10389"],"title":"Wmo Station Id"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"source_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority.","examples":["1234","1234,2345"],"title":"Source Id"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority."},{"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."},{"name":"units","in":"query","required":false,"schema":{"enum":["dwd","si"],"type":"string","description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>","default":"dwd","title":"Units"},"description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeatherResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synop":{"get":{"tags":["Internals"],"summary":"Raw SYNOP observations","description":"Returns a list of ten-minutely SYNOP observations for the time range given\nby `date` and `last_date`. Note that Bright Sky only stores SYNOP\nobservations from the past 30 hours.\n\nTo set the weather station for which to retrieve records, you must supply\none of `dwd_station_id`, `wmo_station_id`, or `source_id`. The `/synop`\nendpoint does not support `lat` and `lon`; use the\n[`/sources` endpoint](/operations/getSources) if you need to retrieve a\nSYNOP station ID close to a given location.\n\nSYNOP observations are stored as they were reported, which in particular\nimplies that many parameters are only available at certain timestamps. For\nexample, most stations report `sunshine_60` only on the full hour, and\n`sunshine_30` only at 30 minutes past the full hour (i.e. also not on the\nfull hour). Check out the\n[`/current_weather` endpoint](/operations/getCurrentWeather) for an\nopinionated compilation of recent SYNOP records into a single \"current\nweather\" record.","operationId":"getSynop","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date-time","description":"Timestamp of first weather record (or forecast) to retrieve, in ISO 8601 format. May contain time and/or UTC offset.","examples":["2023-08-07","2023-08-07T08:00+02:00"],"title":"Date"},"description":"Timestamp of first weather record (or forecast) to retrieve, in ISO 8601 format. May contain time and/or UTC offset."},{"name":"last_date","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Timestamp of last weather record (or forecast) to retrieve, in ISO 8601 format. Will default to `date + 1 day`.","examples":["2023-08-08","2023-08-07T23:00+02:00"],"title":"Last Date"},"description":"Timestamp of last weather record (or forecast) to retrieve, in ISO 8601 format. Will default to `date + 1 day`."},{"name":"dwd_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["01766","00420,00053,00400"],"title":"Dwd Station Id"},"description":"DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"wmo_station_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.","examples":["10315","G005,F451,10389"],"title":"Wmo Station Id"},"description":"WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority."},{"name":"source_id","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority.","examples":["1234","1234,2345"],"title":"Source Id"},"description":"Bright Sky source ID, as retrieved from the [`/sources` endpoint](/operations/getSources). You can supply multiple source IDs separated by commas, ordered from highest to lowest priority."},{"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."},{"name":"units","in":"query","required":false,"schema":{"enum":["dwd","si"],"type":"string","description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>","default":"dwd","title":"Units"},"description":"Physical units in which meteorological parameters will be returned. Set to `si` to use <a href=\"https://en.wikipedia.org/wiki/International_System_of_Units\">SI units</a> (except for precipitation, which is always measured in millimeters). The default `dwd` option uses a set of units that is more common in meteorological applications and civil use:\n<table>\n  <tr><td></td><td>DWD</td><td>SI</td></tr>\n  <tr><td>Cloud cover</td><td>%</td><td>%</td></tr>\n  <tr><td>Dew point</td><td>°C</td><td>K</td></tr>\n  <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr>\n  <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr>\n  <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr>\n  <tr><td>Relative humidity</td><td>%</td><td>%</td></tr>\n  <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr>\n  <tr><td>Sunshine</td><td>min</td><td>s</td></tr>\n  <tr><td>Temperature</td><td>°C</td><td>K</td></tr>\n  <tr><td>Visibility</td><td>m</td><td>m</td></tr>\n  <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr>\n  <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr>\n</table>"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SynopResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/radar":{"get":{"summary":"Radar","description":"Returns radar rainfall data with 1 km spatial and 5 minute temporal\nresolution, including a forecast for the next two hours.\n\nRadar data is recorded on a 1200 km (North-South) x 1100 km (East-West)\ngrid, with each pixel representing 1 km². **That's quite a lot of data, so\nuse `lat`/`lon` or `bbox` whenever you can (see below).** Past radar\nrecords are kept for six hours.\n\nBright Sky can return the data in a few formats. Use the default\n`compressed` format if possible – this'll get you the fastest response\ntimes by far and reduce load on the server. If you have a small-ish\nbounding box (e.g. 250 x 250 pixels), using the `plain` format should be\nfine.\n\n### Quickstart\n\nThis request will get you radar data near Münster, reaching 200 km to the\nEast/West/North/South, as a two-dimensional grid of integers:\n\n[`https://api.brightsky.dev/radar?lat=52&lon=7.6&format=plain`](https://api.brightsky.dev/radar?lat=52&lon=7.6&format=plain)\n\n### Content\n\n* The grid is a polar stereographic projection of Germany and the regions\n  bordering it. This is different from the mercator projection used for\n  most consumer-facing maps like OpenStreetMap or Google Maps, and\n  overlaying the radar data onto such a map without conversion\n  (reprojection) will be inaccurate! Check out our [radar\n  demo](https://brightsky.dev/demo/radar/) for an example of correctly\n  reprojecting the radar data using OpenLayers. Alternatively, take a look\n  at the `dwd:RV-Produkt` layer on the [DWD's open\n  GeoServer](https://maps.dwd.de/geoserver/web/wicket/bookmarkable/org.geoserver.web.demo.MapPreviewPage)\n  for ready-made tiles you can overlay onto a map.\n* The [proj-string](https://proj.org/en/9.2/usage/quickstart.html) for the\n  grid projection is `+proj=stere +lat_0=90 +lat_ts=60 +lon_0=10 +a=6378137\n  +b=6356752.3142451802 +no_defs +x_0=543196.83521776402\n  +y_0=3622588.8619310018`. The radar pixels range from `-500` (left) to\n  `1099500` (right) on the x-axis, and from `500` (top) to `-1199500`\n  (bottom) on the y-axis, each radar pixel a size of `1000x1000` (1 km²).\n* The DWD data does not cover the whole grid! Many areas near the edges\n  will always be `0`.\n* Values represent 0.01 mm / 5 min. I.e., if a pixel has a value of `45`,\n  then 0.45 mm of precipitation fell in the corresponding square kilometer\n  in the past five minutes.\n* The four corners of the grid are as follows:\n  * Northwest: Latitude `55.86208711`, Longitude `1.463301510`\n  * Northeast: Latitude `55.84543856`, Longitude `18.73161645`\n  * Southeast: Latitude `45.68460578`, Longitude `16.58086935`\n  * Southwest: Latitude `45.69642538`, Longitude `3.566994635`\n\nYou can find details and more information in the [DWD's `RV product info`\n(German\nonly)](https://www.dwd.de/DE/leistungen/radarprodukte/formatbeschreibung_rv.pdf?__blob=publicationFile&v=3).\nBelow is an example visualization of the rainfall radar data taken from\nthis document, using the correct projection and showing the radar coverage:\n\n![image](https://github.com/jdemaeyer/brightsky/assets/10531844/09f9bb5f-088a-417e-8a0c-ea5a20fe0969)\n\n### Code examples\n\n> The radar data is quite big (naively unpacking the default 25-frames\n> response into Python integer arrays will eat roughly 125 MB of memory),\n> so use `bbox` whenever you can.\n\n#### `compressed` format\n\nWith Javascript using [`pako`](https://github.com/nodeca/pako):\n\n```js\nfetch(\n  'https://api.brightsky.dev/radar'\n).then((resp) => resp.json()\n).then((respData) => {\n  const raw = respData.radar[0].precipitation_5;\n  const compressed = Uint8Array.from(atob(raw), c => c.charCodeAt(0));\n  const rawBytes = pako.inflate(compressed).buffer;\n  const precipitation = new Uint16Array(rawBytes);\n});\n```\n\nWith Python using `numpy`:\n\n```python\nimport base64\nimport zlib\n\nimport numpy as np\nimport requests\n\nresp = requests.get('https://api.brightsky.dev/radar')\nraw = resp.json()['radar'][0]['precipitation_5']\nraw_bytes = zlib.decompress(base64.b64decode(raw))\n\ndata = np.frombuffer(\n    raw_bytes,\n    dtype='i2',\n).reshape(\n    # Adjust `1200` and `1100` to the height/width of your bbox\n    (1200, 1100),\n)\n```\n\nWith Python using the standard library's `array`:\n```python\nimport array\n\n# [... load raw_bytes as above ...]\n\ndata = array.array('H')\ndata.frombytes(raw_bytes)\ndata = [\n    # Adjust `1200` and `1100` to the height/width of your bbox\n    data[row*1100:(row+1)*1100]\n    for row in range(1200)\n]\n```\n\nSimple plot using `matplotlib`:\n```python\nimport matplotlib.pyplot as plt\n\n# [... load data as above ...]\n\nplt.imshow(data, vmax=50)\nplt.show()\n```\n\n#### `bytes` format\n\nSame as for `compressed`, but add `?format=bytes` to the URL and remove the\ncall to `zlib.decompress`, using just `raw_bytes = base64.b64decode(raw)`\ninstead.\n\n#### `plain` format\n\nThis is obviously a lot simpler than the `compressed` format. It is,\nhowever, also a lot slower. Nonetheless, if you have a small-ish `bbox` the\nperformance difference becomes manageable, so just using the `plain` format\nand not having to deal with unpacking logic can be a good option in this\ncase.\n\nWith Python:\n```python\nimport requests\n\nresp = requests.get('https://api.brightsky.dev/radar?format=plain')\ndata = resp.json()['radar'][0]['precipitation_5']\n```\n\n### Additional resources\n\n* [Source for our radar demo, including reprojecton via OpenLayers](https://github.com/jdemaeyer/brightsky/blob/master/docs/demo/radar/index.html)\n* [Raw data on the Open Data Server](https://opendata.dwd.de/weather/radar/composite/rv/)\n* [Details on the `RV` product (German)](https://www.dwd.de/DE/leistungen/radarprodukte/formatbeschreibung_rv.pdf?__blob=publicationFile&v=3)\n* [Visualization of current rainfall radar](https://www.dwd.de/DE/leistungen/radarbild_film/radarbild_film.html)\n* [General info on DWD radar products (German)](https://www.dwd.de/DE/leistungen/radarprodukte/radarprodukte.html)\n* [Radar status (German)](https://www.dwd.de/DE/leistungen/radarniederschlag/rn_info/home_freie_radarstatus_kartendaten.html?nn=16102)\n* [DWD notifications for radar products (German)](https://www.dwd.de/DE/leistungen/radolan/radolan_info/radolan_informationen.html?nn=16102)","operationId":"getRadar","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer"},"description":"Bounding box (top, left, bottom, right) **in pixels**, edges are inclusive. (_Defaults to full 1200x1100 grid._)","examples":["100,100,300,300"],"title":"Bbox"},"description":"Bounding box (top, left, bottom, right) **in pixels**, edges are inclusive. (_Defaults to full 1200x1100 grid._)"},{"name":"distance","in":"query","required":false,"schema":{"type":"integer","description":"Alternative way to set a bounding box, must be used together with `lat` and `lon`. Data will reach `distance` meters to each side of this location, but is possibly cut off at the edges of the radar grid.","examples":[100000],"default":200000,"title":"Distance"},"description":"Alternative way to set a bounding box, must be used together with `lat` and `lon`. Data will reach `distance` meters to each side of this location, but is possibly cut off at the edges of the radar grid."},{"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":"date","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Timestamp of first record to retrieve, in ISO 8601 format. May contain time and/or UTC offset. (_Defaults to 1 hour before latest measurement._)","examples":["2023-08-07","2023-08-07T19:00+02:00"],"title":"Date"},"description":"Timestamp of first record to retrieve, in ISO 8601 format. May contain time and/or UTC offset. (_Defaults to 1 hour before latest measurement._)"},{"name":"last_date","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Timestamp of last record to retrieve, in ISO 8601 format. May contain time and/or UTC offset. (_Defaults to 2 hours after `date`._)","examples":["2023-08-08","2023-08-07T23:00+02:00"],"title":"Last Date"},"description":"Timestamp of last record to retrieve, in ISO 8601 format. May contain time and/or UTC offset. (_Defaults to 2 hours after `date`._)"},{"name":"format","in":"query","required":false,"schema":{"enum":["compressed","bytes","plain"],"type":"string","description":"\nDetermines how the precipitation data is encoded into the `precipitation_5` field:\n* `compressed`: base64-encoded, zlib-compressed bytestring of 2-byte integers\n* `bytes`: base64-encoded bytestring of 2-byte integers\n* `plain`: Nested array of integers\n        ","default":"compressed","title":"Format"},"description":"\nDetermines how the precipitation data is encoded into the `precipitation_5` field:\n* `compressed`: base64-encoded, zlib-compressed bytestring of 2-byte integers\n* `bytes`: base64-encoded bytestring of 2-byte integers\n* `plain`: Nested array of integers\n        "},{"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/RadarResponse"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alerts":{"get":{"summary":"Alerts","description":"Returns a list of weather alerts for the given location, or all weather\nalerts if no location given.\n\nIf you supply either `warn_cell_id` or both `lat` and `lon`, Bright Sky\nwill return additional information on that cell in the `location` field.\nWarn cell IDs are municipality (_Gemeinde_) cell IDs.\n\n### Notes\n\n* The DWD divides Germany's area into roughly 11,000 \"cells\" based on\n  municipalities (_Gemeinden_), and issues warnings for each of these\n  cells. Most warnings apply to many cells.\n* Bright Sky will supply information on the cell that a given lat/lon\n  belongs to in the `location` field.\n* There is also a set of roughly 400 cells based on districts\n  (_Landkreise_) that is not supported by Bright Sky.\n* The complete list of cells can be found on the DWD GeoServer (see below).\n\n### Additional resources\n\n* [Live demo of a simple interactive alerts map](https://brightsky.dev/demo/alerts/)\n* [Source for alerts map demo](https://github.com/jdemaeyer/brightsky/blob/master/docs/demo/alerts/index.html)\n* [Map view of all current alerts by the DWD](https://www.dwd.de/DE/wetter/warnungen_gemeinden/warnWetter_node.html)\n* [List of municipality cells](https://maps.dwd.de/geoserver/wfs?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=Warngebiete_Gemeinden&OUTPUTFORMAT=json)\n* [List of district cells (*not used by Bright Sky!*)](https://maps.dwd.de/geoserver/wfs?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=Warngebiete_Kreise&OUTPUTFORMAT=json)\n* [Raw data on the Open Data Server](https://opendata.dwd.de/weather/alerts/cap/COMMUNEUNION_DWD_STAT/)\n* [DWD Documentation on alert fields and their allowed contents (English)](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_dwd_profile_en_pdf_2_1_13.pdf?__blob=publicationFile&v=3)\n* [DWD Documentation on alert fields and their allowed contents (German)](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_dwd_profile_de_pdf_2_1_13.pdf?__blob=publicationFile&v=3)","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"}}}}}}}},"components":{"schemas":{"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).\nMax. 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"},"AlertsResponse":{"properties":{"alerts":{"items":{"$ref":"#/components/schemas/Alert"},"type":"array","title":"Alerts"},"location":{"$ref":"#/components/schemas/Location","nullable":true}},"type":"object","title":"AlertsResponse"},"CurrentWeatherRecord":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"ISO 8601-formatted timestamp of this weather record","examples":["2023-08-07T12:30:00+00:00"]},"source_id":{"type":"integer","title":"Source Id","description":"Bright Sky source ID for this record","examples":[238685]},"cloud_cover":{"type":"number","title":"Cloud Cover","description":"Total cloud cover at timestamp","examples":[12.1],"nullable":true},"condition":{"type":"string","enum":["dry","fog","rain","sleet","snow","hail","thunderstorm"],"title":"Condition","description":"Current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"dew_point":{"type":"number","title":"Dew Point","description":"Dew point at timestamp, 2 m above ground","examples":[-2.5],"nullable":true},"icon":{"type":"string","enum":["clear-day","clear-night","partly-cloudy-day","partly-cloudy-night","cloudy","fog","wind","rain","sleet","snow","hail","thunderstorm"],"title":"Icon","description":"Icon alias suitable for the current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"pressure_msl":{"type":"number","title":"Pressure Msl","description":"Atmospheric pressure at timestamp, reduced to mean sea level","examples":[1015.1],"nullable":true},"relative_humidity":{"type":"integer","title":"Relative Humidity","description":"Relative humidity at timestamp","examples":[40],"nullable":true},"temperature":{"type":"number","title":"Temperature","description":"Air temperature at timestamp, 2 m above the ground","examples":[10.6],"nullable":true},"visibility":{"type":"integer","title":"Visibility","description":"Visibility at timestamp","examples":[50000],"nullable":true},"fallback_source_ids":{"additionalProperties":true,"type":"object","title":"Fallback Source Ids","description":"Object mapping meteorological parameters to the source IDs of alternative sources that were used to fill up missing values in the main source","examples":[{"pressure_msl":11831,"wind_speed_30":11831}]},"precipitation_10":{"type":"number","title":"Precipitation 10","description":"Total precipitation during previous 10 minutes","examples":[0.8],"nullable":true},"precipitation_30":{"type":"number","title":"Precipitation 30","description":"Total precipitation during previous 30 minutes","examples":[1.2],"nullable":true},"precipitation_60":{"type":"number","title":"Precipitation 60","description":"Total precipitation during previous 60 minutes","examples":[1.8],"nullable":true},"solar_10":{"type":"number","title":"Solar 10","description":"Solar irradiation during previous 10 minutes","examples":[0.081],"nullable":true},"solar_30":{"type":"number","title":"Solar 30","description":"Solar irradiation during previous 30 minutes","examples":[0.207],"nullable":true},"solar_60":{"type":"number","title":"Solar 60","description":"Solar irradiation during previous 60 minutes","examples":[0.48],"nullable":true},"sunshine_30":{"type":"integer","title":"Sunshine 30","description":"Sunshine duration during previous 30 minutes","examples":[28],"nullable":true},"sunshine_60":{"type":"integer","title":"Sunshine 60","description":"Sunshine duration during previous 60 minutes","examples":[52],"nullable":true},"wind_direction_10":{"type":"integer","title":"Wind Direction 10","description":"Mean wind direction during previous 10 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_direction_30":{"type":"integer","title":"Wind Direction 30","description":"Mean wind direction during previous 30 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_direction_60":{"type":"integer","title":"Wind Direction 60","description":"Mean wind direction during previous 60 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_speed_10":{"type":"number","title":"Wind Speed 10","description":"Mean wind speed during previous 10 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_speed_30":{"type":"number","title":"Wind Speed 30","description":"Mean wind speed during previous 30 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_speed_60":{"type":"number","title":"Wind Speed 60","description":"Mean wind speed during previous 60 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_gust_direction_10":{"type":"integer","title":"Wind Gust Direction 10","description":"Direction of maximum wind gust during previous 10 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_direction_30":{"type":"integer","title":"Wind Gust Direction 30","description":"Direction of maximum wind gust during previous 30 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_direction_60":{"type":"integer","title":"Wind Gust Direction 60","description":"Direction of maximum wind gust during previous 60 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_speed_10":{"type":"number","title":"Wind Gust Speed 10","description":"Speed of maximum wind gust during previous 10 minutes, 10 m above the ground","examples":[33.5],"nullable":true},"wind_gust_speed_30":{"type":"number","title":"Wind Gust Speed 30","description":"Speed of maximum wind gust during previous 30 minutes, 10 m above the ground","examples":[33.5],"nullable":true},"wind_gust_speed_60":{"type":"number","title":"Wind Gust Speed 60","description":"Speed of maximum wind gust during previous 60 minutes, 10 m above the ground","examples":[33.5],"nullable":true}},"type":"object","title":"CurrentWeatherRecord"},"CurrentWeatherResponse":{"properties":{"weather":{"$ref":"#/components/schemas/CurrentWeatherRecord"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources"}},"type":"object","title":"CurrentWeatherResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail","default":"Error details"}},"type":"object","title":"NotFoundResponse"},"RadarRecord":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"ISO 8601-formatted timestamp of this radar record","examples":["2023-08-07T08:00:00+00:00"]},"source":{"type":"string","title":"Source","description":"Unique identifier for DWD radar product source of this radar record","examples":["RADOLAN::RV::2023-08-08T11:45:00+00:00"]},"precipitation_5":{"type":"string","title":"Precipitation 5","description":"Pixelwise 5-minute precipitation data, in units of 0.01 mm / 5 min. Depending on the `format` parameter, this field contains either a two-dimensional array of integers (`plain`), or a base64 string (`bytes` or `compressed`).","examples":["eF5jGAWjYBTQEQAAA3IAAQ=="]}},"type":"object","title":"RadarRecord"},"RadarResponse":{"properties":{"radar":{"items":{"$ref":"#/components/schemas/RadarRecord"},"type":"array","title":"Radar"},"geometry":{"additionalProperties":true,"type":"object","title":"Geometry","description":"GeoJSON-formatted bounding box of returned radar data, i.e. lat/lon coordinates of the four corners.","examples":[{"coordinates":[[7.44365,52.08712],[7.45668,51.90644],[7.7487,51.914],[7.73716,52.09473]],"type":"Polygon"}]},"bbox":{"items":{"type":"integer"},"type":"array","title":"Bbox","description":"Bounding box (top, left, bottom, right) calculated from the supplied position and distance. Only returned if you supplied `lat` and `lon`.","examples":[[100,100,300,300]],"nullable":true},"latlon_position":{"additionalProperties":true,"type":"object","title":"Latlon Position","description":"Exact x-y-position of the supplied position. Only returned if you supplied `lat` and `lon`.","examples":[{"x":10.244,"y":10.088}],"nullable":true}},"type":"object","title":"RadarResponse"},"Source":{"properties":{"id":{"type":"integer","title":"Id","description":"Bright Sky source ID","examples":[6007]},"dwd_station_id":{"type":"string","title":"Dwd Station Id","description":"DWD weather station ID","examples":["01766"],"nullable":true},"wmo_station_id":{"type":"string","title":"Wmo Station Id","description":"WMO weather station ID","examples":["10315"],"nullable":true},"station_name":{"type":"string","title":"Station Name","description":"DWD weather station name","examples":["Münster/Osnabrück"],"nullable":true},"observation_type":{"type":"string","enum":["historical","current","synop","forecast"],"title":"Observation Type","description":"Source type"},"first_record":{"type":"string","format":"date-time","title":"First Record","description":"Timestamp of first available record for this source","examples":["2010-01-01T00:00+02:00"]},"last_record":{"type":"string","format":"date-time","title":"Last Record","description":"Timestamp of latest available record for this source","examples":["2023-08-07T12:40+02:00"]},"lat":{"type":"number","title":"Lat","description":"Station latitude, in decimal degrees","examples":[52.1344]},"lon":{"type":"number","title":"Lon","description":"Station longitude, in decimal degrees","examples":[7.6969]},"height":{"type":"number","title":"Height","description":"Station height, in meters","examples":[47.8]},"distance":{"type":"integer","title":"Distance","description":"Distance of weather station to the requested `lat` and `lon` (if given), in meters","examples":[16365]}},"type":"object","title":"Source"},"SourcesResponse":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources"}},"type":"object","title":"SourcesResponse"},"SynopRecord":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"ISO 8601-formatted timestamp of this weather record","examples":["2023-08-07T12:30:00+00:00"]},"source_id":{"type":"integer","title":"Source Id","description":"Bright Sky source ID for this record","examples":[238685]},"cloud_cover":{"type":"number","title":"Cloud Cover","description":"Total cloud cover at timestamp","examples":[12.1],"nullable":true},"condition":{"type":"string","enum":["dry","fog","rain","sleet","snow","hail","thunderstorm"],"title":"Condition","description":"Current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"dew_point":{"type":"number","title":"Dew Point","description":"Dew point at timestamp, 2 m above ground","examples":[-2.5],"nullable":true},"icon":{"type":"string","enum":["clear-day","clear-night","partly-cloudy-day","partly-cloudy-night","cloudy","fog","wind","rain","sleet","snow","hail","thunderstorm"],"title":"Icon","description":"Icon alias suitable for the current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"pressure_msl":{"type":"number","title":"Pressure Msl","description":"Atmospheric pressure at timestamp, reduced to mean sea level","examples":[1015.1],"nullable":true},"relative_humidity":{"type":"integer","title":"Relative Humidity","description":"Relative humidity at timestamp","examples":[40],"nullable":true},"temperature":{"type":"number","title":"Temperature","description":"Air temperature at timestamp, 2 m above the ground","examples":[10.6],"nullable":true},"visibility":{"type":"integer","title":"Visibility","description":"Visibility at timestamp","examples":[50000],"nullable":true},"fallback_source_ids":{"additionalProperties":true,"type":"object","title":"Fallback Source Ids","description":"Object mapping meteorological parameters to the source IDs of alternative sources that were used to fill up missing values in the main source","examples":[{"pressure_msl":11831,"wind_speed_30":11831}]},"precipitation_10":{"type":"number","title":"Precipitation 10","description":"Total precipitation during previous 10 minutes","examples":[0.8],"nullable":true},"precipitation_30":{"type":"number","title":"Precipitation 30","description":"Total precipitation during previous 30 minutes","examples":[1.2],"nullable":true},"precipitation_60":{"type":"number","title":"Precipitation 60","description":"Total precipitation during previous 60 minutes","examples":[1.8],"nullable":true},"solar_10":{"type":"number","title":"Solar 10","description":"Solar irradiation during previous 10 minutes","examples":[0.081],"nullable":true},"solar_30":{"type":"number","title":"Solar 30","description":"Solar irradiation during previous 30 minutes","examples":[0.207],"nullable":true},"solar_60":{"type":"number","title":"Solar 60","description":"Solar irradiation during previous 60 minutes","examples":[0.48],"nullable":true},"sunshine_30":{"type":"integer","title":"Sunshine 30","description":"Sunshine duration during previous 30 minutes","examples":[28],"nullable":true},"sunshine_60":{"type":"integer","title":"Sunshine 60","description":"Sunshine duration during previous 60 minutes","examples":[52],"nullable":true},"wind_direction_10":{"type":"integer","title":"Wind Direction 10","description":"Mean wind direction during previous 10 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_direction_30":{"type":"integer","title":"Wind Direction 30","description":"Mean wind direction during previous 30 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_direction_60":{"type":"integer","title":"Wind Direction 60","description":"Mean wind direction during previous 60 minutes, 10 m above the ground","examples":[70],"nullable":true},"wind_speed_10":{"type":"number","title":"Wind Speed 10","description":"Mean wind speed during previous 10 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_speed_30":{"type":"number","title":"Wind Speed 30","description":"Mean wind speed during previous 30 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_speed_60":{"type":"number","title":"Wind Speed 60","description":"Mean wind speed during previous 60 minutes, 10 m above the ground","examples":[12.6],"nullable":true},"wind_gust_direction_10":{"type":"integer","title":"Wind Gust Direction 10","description":"Direction of maximum wind gust during previous 10 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_direction_30":{"type":"integer","title":"Wind Gust Direction 30","description":"Direction of maximum wind gust during previous 30 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_direction_60":{"type":"integer","title":"Wind Gust Direction 60","description":"Direction of maximum wind gust during previous 60 minutes, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_speed_10":{"type":"number","title":"Wind Gust Speed 10","description":"Speed of maximum wind gust during previous 10 minutes, 10 m above the ground","examples":[33.5],"nullable":true},"wind_gust_speed_30":{"type":"number","title":"Wind Gust Speed 30","description":"Speed of maximum wind gust during previous 30 minutes, 10 m above the ground","examples":[33.5],"nullable":true},"wind_gust_speed_60":{"type":"number","title":"Wind Gust Speed 60","description":"Speed of maximum wind gust during previous 60 minutes, 10 m above the ground","examples":[33.5],"nullable":true},"sunshine_10":{"type":"integer","title":"Sunshine 10","description":"Sunshine duration during previous 10 minutes","examples":[8],"nullable":true}},"type":"object","title":"SynopRecord"},"SynopResponse":{"properties":{"weather":{"items":{"$ref":"#/components/schemas/SynopRecord"},"type":"array","title":"Weather"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources"}},"type":"object","title":"SynopResponse"},"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"},"WeatherRecord":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"ISO 8601-formatted timestamp of this weather record","examples":["2023-08-07T12:30:00+00:00"]},"source_id":{"type":"integer","title":"Source Id","description":"Bright Sky source ID for this record","examples":[238685]},"cloud_cover":{"type":"number","title":"Cloud Cover","description":"Total cloud cover at timestamp","examples":[12.1],"nullable":true},"condition":{"type":"string","enum":["dry","fog","rain","sleet","snow","hail","thunderstorm"],"title":"Condition","description":"Current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"dew_point":{"type":"number","title":"Dew Point","description":"Dew point at timestamp, 2 m above ground","examples":[-2.5],"nullable":true},"icon":{"type":"string","enum":["clear-day","clear-night","partly-cloudy-day","partly-cloudy-night","cloudy","fog","wind","rain","sleet","snow","hail","thunderstorm"],"title":"Icon","description":"Icon alias suitable for the current weather conditions. Unlike the numerical parameters, this field is not taken as-is from the raw data (because it does not exist), but is calculated from different fields in the raw data as a best effort. Not all values are available for all source types.","nullable":true},"pressure_msl":{"type":"number","title":"Pressure Msl","description":"Atmospheric pressure at timestamp, reduced to mean sea level","examples":[1015.1],"nullable":true},"relative_humidity":{"type":"integer","title":"Relative Humidity","description":"Relative humidity at timestamp","examples":[40],"nullable":true},"temperature":{"type":"number","title":"Temperature","description":"Air temperature at timestamp, 2 m above the ground","examples":[10.6],"nullable":true},"visibility":{"type":"integer","title":"Visibility","description":"Visibility at timestamp","examples":[50000],"nullable":true},"fallback_source_ids":{"additionalProperties":true,"type":"object","title":"Fallback Source Ids","description":"Object mapping meteorological parameters to the source IDs of alternative sources that were used to fill up missing values in the main source","examples":[{"pressure_msl":11831,"wind_speed_30":11831}]},"precipitation":{"type":"number","title":"Precipitation","description":"Total precipitation during previous 60 minutes","examples":[1.8],"nullable":true},"solar":{"type":"number","title":"Solar","description":"Solar irradiation during previous 60 minutes","examples":[0.563],"nullable":true},"sunshine":{"type":"integer","title":"Sunshine","description":"Sunshine duration during previous 60 minutes","examples":[58],"nullable":true},"wind_direction":{"type":"integer","title":"Wind Direction","description":"Mean wind direction during previous hour, 10 m above the ground","examples":[70],"nullable":true},"wind_speed":{"type":"number","title":"Wind Speed","description":"Mean wind speed during previous hour, 10 m above the ground","examples":[12.6],"nullable":true},"wind_gust_direction":{"type":"integer","title":"Wind Gust Direction","description":"Direction of maximum wind gust during previous hour, 10 m above the ground","examples":[50],"nullable":true},"wind_gust_speed":{"type":"number","title":"Wind Gust Speed","description":"Speed of maximum wind gust during previous hour, 10 m above the ground","examples":[33.5],"nullable":true},"precipitation_probability":{"type":"integer","title":"Precipitation Probability","description":"Probability of more than 0.1 mm of precipitation in the previous hour (only available in forecasts)","examples":[46],"nullable":true},"precipitation_probability_6h":{"type":"integer","title":"Precipitation Probability 6H","description":"Probability of more than 0.2 mm of precipitation in the previous 6 hours (only available in forecasts at 0:00, 6:00, 12:00, and 18:00 UTC)","examples":[75],"nullable":true}},"type":"object","title":"WeatherRecord"},"WeatherResponse":{"properties":{"weather":{"items":{"$ref":"#/components/schemas/WeatherRecord"},"type":"array","title":"Weather"},"sources":{"items":{"$ref":"#/components/schemas/Source"},"type":"array","title":"Sources"}},"type":"object","title":"WeatherResponse"}}}}