---
title: "Raw SYNOP observations"
method: GET
path: "/synop"
tags: ["Internals"]
---

# Raw SYNOP observations

`GET /synop`

Returns a list of ten-minutely SYNOP observations for the time range given
by `date` and `last_date`. Note that Bright Sky only stores SYNOP
observations from the past 30 hours.

To set the weather station for which to retrieve records, you must supply
one of `dwd_station_id`, `wmo_station_id`, or `source_id`. The `/synop`
endpoint does not support `lat` and `lon`; use the
[`/sources` endpoint](/operations/getSources) if you need to retrieve a
SYNOP station ID close to a given location.

SYNOP observations are stored as they were reported, which in particular
implies that many parameters are only available at certain timestamps. For
example, most stations report `sunshine_60` only on the full hour, and
`sunshine_30` only at 30 minutes past the full hour (i.e. also not on the
full hour). Check out the
[`/current_weather` endpoint](/operations/getCurrentWeather) for an
opinionated compilation of recent SYNOP records into a single "current
weather" record.

## Query parameters

- `date` string, date-time, required — Timestamp of first weather record (or forecast) to retrieve, in ISO 8601 format. May contain time and/or UTC offset.
- `last_date` string, date-time — Timestamp of last weather record (or forecast) to retrieve, in ISO 8601 format. Will default to `date + 1 day`.
- `dwd_station_id` string[] — DWD station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.
- `wmo_station_id` string[] — WMO station ID, typically five alphanumeric characters. You can supply multiple station IDs separated by commas, ordered from highest to lowest priority.
- `source_id` integer[] — 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.
- `tz` string — 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.
- `units` 'dwd' | 'si' — 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: <table> <tr><td></td><td>DWD</td><td>SI</td></tr> <tr><td>Cloud cover</td><td>%</td><td>%</td></tr> <tr><td>Dew point</td><td>°C</td><td>K</td></tr> <tr><td>Precipitation</td><td>mm</td><td><s>kg / m²</s> <strong>mm</strong></td></tr> <tr><td>Precipitation probability</td><td>%</td><td>%</td></tr> <tr><td>Pressure</td><td>hPa</td><td>Pa</td></tr> <tr><td>Relative humidity</td><td>%</td><td>%</td></tr> <tr><td>Solar irradiation</td><td>kWh / m²</td><td>J / m²</td></tr> <tr><td>Sunshine</td><td>min</td><td>s</td></tr> <tr><td>Temperature</td><td>°C</td><td>K</td></tr> <tr><td>Visibility</td><td>m</td><td>m</td></tr> <tr><td>Wind (gust) direction</td><td>°</td><td>°</td></tr> <tr><td>Wind (gust) speed</td><td>km / h</td><td>m / s</td></tr> </table>

## Response `200`

Successful Response

- SynopResponse
  - `weather` SynopRecord[]
    - `timestamp` string, date-time — ISO 8601-formatted timestamp of this weather record
    - `source_id` integer — Bright Sky source ID for this record
    - `cloud_cover` number, nullable — Total cloud cover at timestamp
    - `condition` 'dry' | 'fog' | 'rain' | 'sleet' | 'snow' | 'hail' | 'thunderstorm', nullable — 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.
    - `dew_point` number, nullable — Dew point at timestamp, 2 m above ground
    - `icon` 'clear-day' | 'clear-night' | 'partly-cloudy-day' | 'partly-cloudy-night' | 'cloudy' | 'fog' | 'wind' | 'rain' | 'sleet' | 'snow' | 'hail' | 'thunderstorm', nullable — 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.
    - `pressure_msl` number, nullable — Atmospheric pressure at timestamp, reduced to mean sea level
    - `relative_humidity` integer, nullable — Relative humidity at timestamp
    - `temperature` number, nullable — Air temperature at timestamp, 2 m above the ground
    - `visibility` integer, nullable — Visibility at timestamp
    - `fallback_source_ids` object — Object mapping meteorological parameters to the source IDs of alternative sources that were used to fill up missing values in the main source
    - `precipitation_10` number, nullable — Total precipitation during previous 10 minutes
    - `precipitation_30` number, nullable — Total precipitation during previous 30 minutes
    - `precipitation_60` number, nullable — Total precipitation during previous 60 minutes
    - `solar_10` number, nullable — Solar irradiation during previous 10 minutes
    - `solar_30` number, nullable — Solar irradiation during previous 30 minutes
    - `solar_60` number, nullable — Solar irradiation during previous 60 minutes
    - `sunshine_30` integer, nullable — Sunshine duration during previous 30 minutes
    - `sunshine_60` integer, nullable — Sunshine duration during previous 60 minutes
    - `wind_direction_10` integer, nullable — Mean wind direction during previous 10 minutes, 10 m above the ground
    - `wind_direction_30` integer, nullable — Mean wind direction during previous 30 minutes, 10 m above the ground
    - `wind_direction_60` integer, nullable — Mean wind direction during previous 60 minutes, 10 m above the ground
    - `wind_speed_10` number, nullable — Mean wind speed during previous 10 minutes, 10 m above the ground
    - `wind_speed_30` number, nullable — Mean wind speed during previous 30 minutes, 10 m above the ground
    - `wind_speed_60` number, nullable — Mean wind speed during previous 60 minutes, 10 m above the ground
    - `wind_gust_direction_10` integer, nullable — Direction of maximum wind gust during previous 10 minutes, 10 m above the ground
    - `wind_gust_direction_30` integer, nullable — Direction of maximum wind gust during previous 30 minutes, 10 m above the ground
    - `wind_gust_direction_60` integer, nullable — Direction of maximum wind gust during previous 60 minutes, 10 m above the ground
    - `wind_gust_speed_10` number, nullable — Speed of maximum wind gust during previous 10 minutes, 10 m above the ground
    - `wind_gust_speed_30` number, nullable — Speed of maximum wind gust during previous 30 minutes, 10 m above the ground
    - `wind_gust_speed_60` number, nullable — Speed of maximum wind gust during previous 60 minutes, 10 m above the ground
    - `sunshine_10` integer, nullable — Sunshine duration during previous 10 minutes
  - `sources` Source[]
    - `id` integer — Bright Sky source ID
    - `dwd_station_id` string, nullable — DWD weather station ID
    - `wmo_station_id` string, nullable — WMO weather station ID
    - `station_name` string, nullable — DWD weather station name
    - `observation_type` 'historical' | 'current' | 'synop' | 'forecast' — Source type
    - `first_record` string, date-time — Timestamp of first available record for this source
    - `last_record` string, date-time — Timestamp of latest available record for this source
    - `lat` number — Station latitude, in decimal degrees
    - `lon` number — Station longitude, in decimal degrees
    - `height` number — Station height, in meters
    - `distance` integer — Distance of weather station to the requested `lat` and `lon` (if given), in meters

## Other responses

- `404` — Not Found
- `422` — Validation Error

---

[API](https://skmtc.dev/brightsky/apis/bright-sky.md) · [All operations](https://skmtc.dev/brightsky/apis/bright-sky/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/brightsky/bright-sky/revisions/d9d6acc7794a/schema)
