Weather API · 1.3 km to 28 km · 15 days
The finest model covering your point. Chosen per request.
Most weather APIs run one global model everywhere. This one holds 8, and resolves which of them answers a given coordinate at a given lead time — so a village in the Alps is not served the same 28 km cell as the open Atlantic.
The same 120 km of coast, as each model sees it 28 km the bay is gone 1.3 km the island exists
Resolution is not a specification detail. It decides whether a bay, a valley or an island is in the model at all — and a cell that averages sea and land gives you the temperature of neither.
8 models, resolved automatically
You never choose a model. You send a coordinate; the API picks the finest one covering it, blends across domain edges so the value does not jump, and tells you in the response which model answered.
| Model | Resolution | Coverage | Runs | Horizon | Available after |
|---|---|---|---|---|---|
| Météo-France AROME | 1.3 km | France and near neighbours | 8 ×/day | 51 h | 4 h |
| DWD ICON-D2 | 2.2 km | Central Europe | 4 ×/day | 48 h | 2 h |
| NOAA HRRR | 3 km | Continental United States | 4 ×/day | 48 h | 1.5 h |
| DWD ICON-EU | 6.5 km | Europe, North Africa, Near East | 2 ×/day | 120 h | 3 h |
| DWD ICON | 13 km | World | 2 ×/day | 180 h | 4 h |
| ECMWF IFS | 28 km | World — always present | 2 ×/day | 240 h | 7 h |
| ECMWF AIFS | 28 km | World, days 11–15 | 2 ×/day | 360 h | 7 h |
| ECMWF wave | 28 km | Oceans and seas only | 2 ×/day | 240 h | 7 h |
Domain edges
No seam where one model stops
Switching model abruptly at a boundary makes two neighbouring towns disagree for no physical reason. Each domain carries a blend margin: near the edge the fine model's weight decays and the remainder spills to the next model down. Inside the domain you get the fine model outright.
Lead time
Fine early, global later
AROME stops at 51 hours and HRRR at 48. Past that the resolver falls back through ICON-EU and ICON to ECMWF, on the same request. Your seven-day series is stitched from whichever model was best at each step, and the response records the mix.
What comes back
45 hourly fields — 27 stored, 18 computed on the fly. 21 come back by default; name any of the others in hourly=, or name fewer and shrink the payload.
Temperature & humidity
temperature_2m, daily max and min, dewpoint_2m, relative humidity, apparent temperature, heat index, wind chill, skin temperature.
Wind
u/v components at 10 m and 100 m for wind energy, speed, direction, compass point, Beaufort force, and wind_gust_10m.
Precipitation
Total precipitation de-cumulated per interval, snowfall as water equivalent, and a WMO precipitation_type code that separates rain, snow and freezing rain.
Cloud & visibility
Total cover plus low, mid and high separately — low cloud is what makes a day grey, cirrus barely dims the sun. Oktas for aviation, and visibility for fog.
Radiation & sun
Shortwave irradiance, split into direct beam and diffuse for solar yield. Sun elevation and azimuth, daylight flag, sunrise and sunset, and an estimated UV index.
Pressure & instability
Mean sea level and surface pressure, three-hour pressure tendency, cape for convective potential, and total column water vapour.
Soil
Soil temperature at the surface and through the 7–28 cm root zone — the layer agriculture cares about — from ICON. soil_temperature_0cm and soil_temperature_8cm.
Snow
Depth, water equivalent, freezing level, and snow_line_altitude — the altitude above which precipitation falls as snow, which is a decision a road authority can act on.
Summary
A single WMO weather_code per timestep, so the client draws one icon instead of reimplementing the logic that turns seven fields into “light rain”.
Two corrections most APIs skip
Elevation
The model's mountain is not your mountain
A numerical model smooths terrain to its grid. A valley village can sit 400 m below the elevation the model thinks it has, and the raw temperature is wrong by the lapse rate over that difference.
Send elevation with your request and the value is corrected against the model's own orography. In hills that is typically worth 1–3 °C. The response reports the model elevation, your elevation and the offset applied — so you can audit it, or ignore it.
Freshness
Stale beats absent, and stale says so
If our newest run is older than expected, you still get data, with "stale": true and data_age_hours in the source block. A forecast eight hours old is more useful to your users than a 500.
What you never get is a stale number that looks fresh. Decide in your own code whether to show it, warn, or fall back.
{
"grid": { "distance_km": 8.04, "resolution_km": 28.0 },
"elevation": {
"applied": true,
"model_elevation_m": 91.0,
"location_elevation_m": 113,
"temperature_offset_c": -0.14
},
"source": {
"model": "ecmwf_ifs",
"model_run": "20260725T00Z",
"data_age_hours": 8.95,
"stale": false,
"attribution": "Data: ECMWF (CC-BY-4.0)"
}
}
On the same key, not the same invoice again
Four things that are usually separate products elsewhere. Here they are endpoints on the plan you already bought.
/v1/probability
How sure is the forecast?
A single value says 22 °C on Thursday — a guess presented as a fact. This returns p10, p50, p90 and the spread from ECMWF's 50-member ensemble, plus rain probabilities at 0.1, 1, 5 and 10 mm.
A spread of 0.4 °C is a settled situation. A spread of 3 °C means the atmosphere itself is uncertain, and your users deserve to be told.
/v1/air-quality
PM, ozone, NO₂ — and Saharan dust
From Copernicus CAMS, with WHO guideline values riding along in every response so a number can be placed without looking it up.
Dust matters across North Africa and the Mediterranean: an episode takes PM10 past a thousand µg/m³ for days, and free consumer services cover it poorly.
/v1/marine
Sea state worldwide
Significant wave height, direction and period from the ECMWF wave model, out to ten days. A point on land returns 404 not_at_sea rather than a column of nulls that reads like a failure.
/v1/hydrology
How much water arrives here
River discharge from Copernicus GloFAS on a 0.05° river network — not how much rain falls upstream, but how much water reaches this point, which a catchment and a day of travel time separate.
Information only. Issuing flood warnings is reserved to national and regional authorities.
Where it goes to work
Weather products
City pages, apps and widgets. One WMO code per step for the icon, daily aggregates cut in the user's own time zone, and a city catalogue with search and nearest-point lookup.
Energy
100 m wind for turbine hub height, direct and diffuse irradiance for PV yield, and ensemble spread for the risk side of a position.
Agriculture
Soil temperature and moisture at four depths, evapotranspiration inputs, frost risk from minimum temperature, and gusts for spray windows.
Logistics & roads
Snow line altitude, freezing level, precipitation type and visibility — the four fields that decide whether a pass closes.
Marine & outdoor
Wave height, period and direction, wind gusts, UV index and daylight for planning that has to happen a week ahead.
Resellers
You may redistribute. Build a product on top and sell it, with a footer line of attribution as the only obligation that follows you.
What it does badly
We would rather you knew the limits now than found them in production.
Strong
Temperature, pressure, synoptic wind, humidity, sunshine. Typical 2 m temperature error at 24 hours is around 1–1.5 °C. ECMWF is the best global deterministic model in the world and it is what you are getting.
Weak
Convective storms — a 28 km cell cannot resolve a thunderstorm, and even 3 km only hints at one. Exact placement and timing of showers. Coastal and mountain microclimate below the model's resolution. Sea breezes and valley cold pools, which the terrain correction does not model.
Geographically honest
In France, Germany, the United States and Canada we serve 1.3–3 km national models and a small village genuinely gets its own grid cell. Overseas territories, Alaska, Hawaii and northern Canada lie outside those domains and fall back to 13 km. Elsewhere in Europe you get 6.5 km. Across Africa, the Middle East and most of Asia the best available public model is 13–28 km, so you get the weather of the area rather than of the street. The terrain correction narrows that gap; it does not close it.
Not a warning service
No alerts, no severity colours, no instruction to act. Those belong to the authorities who can also close a road and evacuate a village.
Common questions
Which model will serve my location?
The finest one covering it: AROME at 1.3 km in France, ICON-D2 at 2.2 km in central Europe, HRRR at 3 km in the United States, ICON-EU at 6.5 km across Europe and North Africa, ICON at 13 km worldwide, and ECMWF IFS at 28 km as the baseline that is always present.
Call /v1/models to see the current registry and each model's domain, or read source.model in any response.
How often is it updated?
Global models twice a day at 00 and 12 UTC; the high-resolution national models four times a day at 00, 06, 12 and 18 UTC. Data becomes usable between 90 minutes and 7 hours after run time depending on the provider — the table above gives each one.
Forecast responses are cached for five minutes at the edge, which absorbs repeated city-page traffic without ever serving a run behind the one we hold.
Can I request many locations at once?
One coordinate per request. The storage is chunked so that the whole time series of a small area sits in one chunk — one point across every step is the cheap query, and it is the one almost every product actually makes.
For city-shaped traffic, /v1/forecast/city/{country}/{slug} carries the city's time zone and elevation, so you do not have to.
Is there a bulk download?
No, on any plan. The archive is what you are paying for, and an unbounded export is how a competitor acquires it in an afternoon. Degree-day CSV export exists and is deliberately bounded.
What does it cost?
Free for 10,000 credits a month with no card. €19 a month for 50,000 credits including the Degree Days API, history and CSV. €79 for 400,000 credits and everything else. A forecast request is one credit.
Try it against your own coordinates
The free tier returns the same data the paid tiers do. Point it at somewhere you know well and judge the numbers yourself.