Weather forecast
Temperature Forecast
Predict temperature for a date far in the future, based on a weighted blend of three historical windows — instead of the usual 10-14 day forecast horizon.
Goal
Regular weather forecasts become unreliable past a week or two. For longer-term planning (an event three months out, say) there's little better than guessing — even though historical climate data actually holds useful signal.
Temperature Forecast combines three non-overlapping periods — everything older than 40 years, 10 to 40 years back, and the last 10 years — into one weighted forecast per region and calendar day (default 20/35/45%, adjustable). The three individual components are also shown, so you can spot a warming trend yourself.
New: for day 15 to 30 out — exactly the gap between the usual 14-day forecast and pure climatology — we now factor in the current weather forecast as a trend. Running warmer or colder than normal right now? That deviation gets factored in, but with fading weight: 30% at day 15, tapering to 3% by day 30. That keeps day 30 honestly close to pure climatology, while day 15-20 gets a grounded nudge on top of the long-term average.
Also new: alongside temperature, now also precipitation (mm) and wind (km/h, daily max), following the same setup. Two deliberate differences: the day 15-30 trend nudge is temperature-only — precipitation is too day-to-day chaotic for a persisting trend to carry reliable signal — and the dataset is being filled in region by region, so precipitation/wind may not appear yet for every region right away.
Try it yourself
Enter an address or place name — anywhere in the world.
Temperature forecast for any date, anywhere in the world
Looking for a reliable long-range weather forecast for a holiday, event or wedding a few months out? Temperature Forecast blends historical climate normals into a grounded temperature prediction — not a guess, but a transparent calculation from decades of weather data. Available as a free, open source weather API for anyone who wants to use it in their own app, dashboard or Home Assistant setup.
Using the API
This page runs on a free, open API — no key, no signup. One GET request, JSON back.
Parameters
- address — address (or use lat and lon for coordinates)
- date — target date (YYYY-MM-DD)
- w_long / w_30 / w_10 — optional: your own weighting (must sum to 1)
Example
https://climatenormals.vercel.app/api/normal?address=Jena&date=2027-03-15&w_long=0.2&w_30=0.35&w_10=0.45
Example response
{
"region": "DE-TH",
"region_meta": { "country": "GM", "admin1": "Thüringen", ... },
"distance_to_reference_station_km": 0.2,
"date": "2027-03-15",
"weights_used": { "p_long": 0.2, "p30": 0.35, "p10": 0.45 },
"temp": { "p_long": 8.1, "p30": 8.9, "p10": 9.6, "blend": 8.9 }
}Want to see coverage per country? /api/status
Frequently asked questions
How reliable is this forecast?
Depends how far out. Day 0-14: the real, live weather forecast (Open-Meteo) — as reliable as any good weather app. Day 15-30: the long-term climate average, lightly adjusted with the current trend (30% weight at day 15, fading to 3% by day 30) — a grounded estimate, not a hard forecast. Beyond day 30: pure climate average, no trend component.
What exactly is that 'trend-adjusted estimate' for day 15-30?
The technique is called anomaly/trend persistence — also used in real subseasonal forecasting (e.g. NOAA's 3-4 week outlook). We measure how much warmer or colder the current forecast is than normal, and let that deviation gradually carry into the climatological estimate: 30% weight at day 15, decaying exponentially to 3% by day 30. Explicitly not a hard forecast — but more grounded than a plain guess, and the exact weighting is shown right alongside every result.
Is the API really free, and do I need a key?
Yes, completely free — no API key, no account. MIT license, source open on GitHub.
Which regions and countries are supported?
336 regions across 30 countries, each linked to a historical weather station. Current coverage per country can be checked live via /api/status.
Where does the data come from?
From historical weather stations, fetched via Open-Meteo's archive API, combined into three non-overlapping periods (40+ years, 10-40 years, last 10 years) per region and calendar day.
Can I use this in Home Assistant or my own app?
Yes — it's a simple GET request that returns JSON, no authentication required. Works well in Home Assistant, a dashboard, or any custom application.
Is there a rate limit?
Yes, a reasonable floor: max 60 requests per minute per IP address, as a backstop against abuse. Normal use — including a script that polls occasionally — won't come close. Have a legitimate use case that needs more? Get in touch via the contact form and we'll work something out.
Can I look up historical temperatures too?
Yes — just pick a date in the past. You'll get the historical climate average for that calendar day (not a single reading from that one year, but the long-term average), for any of the 336 supported regions.
Does it include precipitation and wind too?
Yes, in mm (precipitation) and km/h daily max (wind), following the same three-window setup as temperature. Two differences: the day 15-30 trend nudge is temperature-only, and the dataset is being filled in region by region -- check /api/status for current coverage, or just query your region: if precipitation/wind aren't there yet, those fields simply won't appear in the response.