
Open-Meteo
Open-Meteo turns weather models and reanalyses into one simple JSON API: hourly forecasts (for the Netherlands also the KNMI HARMONIE-AROME model at 2 km), and an archive from 1940 based on ERA5. You ask for a latitude and longitude, not a weather station. The data are CC BY 4.0, but the free API is for non-commercial use only and fewer than 10,000 calls a day. robots.txt on the API hosts disallows all bots, so the Open Data Index does not call Open-Meteo itself.
Summer days (25 °C or warmer) in De Bilt (KNMI measurements): an average of 29 days a year in 1996–2025, 87% more than in 1901–1930
Summer days (25 °C or warmer) in De Bilt (KNMI measurements), 1901 – 2025, in days a year. The highest point was 1947 (55).
What can you do with it?4 ideas
The weather where there is no station
Ask for the daily maxima for your own village instead of the nearest KNMI station. Do say it is a model value.
Was it really the hottest day?
The archive gives the daily maximum temperature since 1940. Check record claims, but put them next to the official KNMI measurements.
Forecast versus reality
Save the KNMI forecast for tomorrow every day and compare it later with the De Bilt measurement. How often was the forecast off?
Sun and wind for energy stories
Hourly solar radiation and wind show why power prices drop on sunny or windy days.
How to process it4 steps
Read the terms first
Free for non-commercial use only: fewer than 10,000 calls a day, 5,000 an hour and 600 a minute. Misuse leads to a block without warning.
https://open-meteo.com/en/terms
Forecast with the KNMI model
Choose models=knmi_seamless (on the site 'KNMI Seamless (with ECMWF)': HARMONIE-AROME Netherlands at 2 km and Europe, supplemented with ECMWF).
https://api.open-meteo.com/v1/forecast?latitude=52.09&longitude=5.12&daily=temperature_2m_max&timezone=Europe/Amsterdam&forecast_days=2&models=knmi_seamless
Look back in the archive
The archive uses ERA5 (0.25°, from 1940), ERA5-Land (0.1°, from 1950) and ECMWF IFS (9 km, from 2017).
https://archive-api.open-meteo.com/v1/archive?latitude=52.09&longitude=5.12&start_date=2025-07-01&end_date=2025-07-02&daily=temperature_2m_max
Run it yourself
The software is open source (AGPL-3.0). If you need many calls or work commercially, you can run it yourself or take a subscription.
https://github.com/open-meteo/open-meteo
Interesting combinations
Similar sources
KNMI daily weather dataThe official measurements of KNMI stations, daily since 1901 (De Bilt). Real observations, but only where a station stands.
ERA5 climate reanalysisThe reanalysis the Open-Meteo archive largely rests on, directly from Copernicus. Needs an account, but can also be used commercially.
KNMI Data PlatformThe KNMI Data Platform has the model output and observations themselves, as files. Needs a (free) key.
What to watch out for
- robots.txt disallows bots
api.open-meteo.com and archive-api.open-meteo.com have 'Disallow: /' for all user agents, while the API is meant for programs. We do not call it ourselves; the chart here comes from KNMI.
- Non-commercial
The free API may not be used for commercial applications. What counts as non-commercial follows the Creative Commons definition. Commercial use goes through a paid subscription with its own API address.
- Model, not measurement
All values are model output or reanalysis. Local extremes (an urban heat spike, a cloudburst) often disappear in a grid cell several kilometres wide.
- Attribution required
CC BY 4.0 requires attribution. Credit Open-Meteo as the source and preferably also the underlying model (for example KNMI or ECMWF).
APIREST (GET, JSON) · read 16 Oct 2026
No key for non-commercial use. Commercial: paid subscription, apikey parameter and the host prefixed with customer- (customer-api.open-meteo.com, customer-archive-api.open-meteo.com). from the description
json
Base URL
https://api.open-meteo.com/v1
Endpoints 4
- GET
/forecastForecast up to 16 days per coordinate (api.open-meteo.com; default 7), hourly, daily, 15-minutely or 'current'; with models= also KNMI HARMONIE-AROME (knmi_seamless, knmi_harmonie_arome_netherlands). - GET
https://archive-api.open-meteo.com/v1/archiveHistorical weather per coordinate from reanalyses: ERA5 from 1940 (0.25°), ERA5-Land from 1950 (0.1°), CERRA 1985–June 2021 (5 km), ECMWF IFS from 2017 (9 km). - GET
https://air-quality-api.open-meteo.com/v1/air-qualityHourly air quality from CAMS (domains: auto, cams_europe, cams_global). - GET
marine, ensemble, climate, flood, seasonal, elevationOther APIs, each with its own host and OpenAPI file (waves, ensembles, climate scenarios, river discharge, seasonal forecast, elevation).
Filtering from the description
No query language: choose point, variables, period and model with query parameters.
Parameters 9
latitude / longitude | WGS84; several points comma-separated in one call. | from the description |
hourly / daily / current / minutely_15 | Variables, e.g. hourly=temperature_2m,precipitation or daily=temperature_2m_max. | from the description |
start_date / end_date | YYYY-MM-DD; required for /archive. | from the description |
past_days / forecast_days / past_hours / forecast_hours | Window around now: forecast_days 0–16 (default 7), past_days 0–92. | from the description |
timezone | IANA zone (Europe/Amsterdam) or auto. Set it for daily values that match a Dutch day. | from the description |
models | Pick a model (knmi_seamless, ecmwf_ifs025, era5, era5_land …); without, Open-Meteo chooses ('best match'). | from the description |
temperature_unit / wind_speed_unit / precipitation_unit / timeformat | Units (celsius, kmh, mm) and iso8601 or unixtime. | from the description |
cell_selection | Which grid cell near the coast. | from the description |
tilt / azimuth | Tilt and orientation for global_tilted_irradiance (solar panels). | from the description |
Fields in the response (per the documentation) 7
| Name | Type | Meaning |
|---|---|---|
latitude / longitude | getal | Middelpunt van de gebruikte rastercel (kan afwijken van je punt) |
elevation | getal · m | Hoogte uit een 90 m-hoogtemodel |
utc_offset_seconds / timezone | geheel getal / tekst | Tijdzone van de tijden in het antwoord |
hourly.time | lijst van tijden | ISO 8601 (of unixtime) |
hourly.<variabele> | lijst van getallen | Eén lijst per variabele, even lang als time |
hourly_units | object | Eenheid per variabele (°C, mm, km/h …) |
generationtime_ms | getal · ms | Rekentijd op de server |
Limits and pitfalls
- Free: fewer than 600 calls per minute, 5,000 per hour, 10,000 per day and 300,000 per month; non-commercial only. Abuse: app or IP blocked without notice. from the description
- robots.txt of api.open-meteo.com and archive-api.open-meteo.com is 'Disallow: /'. Open Data Index therefore does not call these APIs automatically; everything here comes from the documentation and the OpenAPI files on GitHub. tested
- An error returns HTTP 400 with {"error": true, "reason": "…"}. from the description
- ERA5 and ERA5-Land lag 5 days. CERRA stops in June 2021. from the description
- The KNMI models (HARMONIE-AROME) only reach 2.5 days ahead; knmi_seamless then appends ECMWF IFS (9 km) up to 15 days. from the description
- The software is open source (AGPL); heavy or commercial users can run Open-Meteo themselves. from the description
Try it
robots.txt of api.open-meteo.com is 'Disallow: /': we make no call here. Try for example https://api.open-meteo.com/v1/forecast?latitude=52.09&longitude=5.12&daily=temperature_2m_max&timezone=Europe/Amsterdam&forecast_days=2&models=knmi_seamless
Read from OpenAPI files per API (forecast, historical-weather, air-quality, marine, ensemble, climate, flood, seasonal, elevation) · Historical weather: models (ERA5, ERA5-Land, CERRA, ECMWF IFS), resolution, delay, response fields · KNMI models via Open-Meteo (HARMONIE-AROME 2 km and 5.5 km) · Terms of use and limits. Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.
More in this topic
See how this page is built
bron: open-meteo
blokken: []
secties:
- ideeen
- verwerken
- koppelingen
- vergelijkbaar
- beperkingen
cache:
tag: bron:open-meteo
ververs: na statuscheck, als de bron nieuwer is
statuscheck:
methode: geen automatische check; robots.txt van api.open-meteo.com verbiedt
alle bots (16 okt 2026)
verwacht: elk uur
Source: content/bronnen/open-meteo.yaml · Markdown


