InfraNode.dev
MCP InfraNode is also available as an MCP server for AI assistants like Claude and ChatGPT.

Weather API for German cities (DWD)

Current weather data for 84 major German cities through a free, keyless REST API. The source is the German Weather Service (DWD), delivered in one consistent JSON envelope with source, license and timestamp on every response.

What data you get

For each city the endpoint returns the nearest DWD observation: air temperature, humidity, wind speed and weather condition, plus the observation time and station id. A separate endpoint serves official DWD weather warnings.

  • Air temperature (degrees Celsius)
  • Relative humidity
  • Wind speed
  • Weather condition
  • Observation time
  • Station id

Source: German Weather Service (DWD). License: DL-DE BY 2.0. Source, license URL and timestamp are included in every API response in the meta and attribution block.

How to fetch it

A simple GET request, no key and no sign-up:

curl https://infranode.dev/api/v1/cities/berlin/weather

For another city, just put the slug from the cities list into the path.

No key, no sign-up, free.

Covered cities

Weather data is available for all 84 covered cities (nearest DWD station).

Available for all 84 covered cities. The exact per-city status is on the coverage and status page, the full list of cities on the cities overview.

Endpoint reference

All parameters, fields and response examples are in the API reference for this endpoint. InfraNode is also available as an MCP server for AI assistants.

Frequently asked questions

Do I need an API key for the weather API?
No. The InfraNode weather API is keyless and free. A simple GET request without sign-up is enough; the rate limit is 300 requests per minute per IP.
Where does the weather data come from?
Data comes from the German Weather Service (DWD) and is passed through unchanged under the DL-DE BY 2.0 license. Every API response carries the source, license URL and observation time.
How current are the values?
The API returns the most recent available DWD observation. The time is exposed as observed_at on every response, with a cache status in the meta block.

More data types