Status

Uptime and incidents for api.freeweatherapi.org. We're a volunteer project without an SLA, but we do write things down — including the embarrassing ones.

99.98% uptime over the last 90 days · 99.97% over the last 12 months

normal degraded / bad data outage each cell = 1 day, oldest on the left

Machine-readable health: GET https://api.freeweatherapi.org/v1/health returns JSON, needs no token, and doesn't count against your rate limit.

Incident log

14 August 2025, 06:12–12:05 UTC · bad data (not an outage)

Six hours of bad humidity data, here's what happenedResolved

For about six hours on 14 August 2025, relative_humidity in /v1/current was wrong — not slightly wrong, but off by up to 40 percentage points — for locations across northern Europe. Temperature, wind and pressure were fine. The API never went down, which is exactly what made this worse: everything looked healthy from the outside while a core field was garbage.

What happened

A station firmware update (from a manufacturer we won't name because they fixed it within a day of being told) changed a register scale without changing the documented units. Roughly 2,000 stations started reporting relative humidity as a scaled integer. Our range check didn't catch it — the values were still 0–100, just wrong. The temporal check didn't catch it either, because the bad values were internally consistent. Only the buddy check should have caught it, and it did — but the failure it raised was being batched for a weekly review instead of paging anyone, because we'd classified station-clusters-disagreeing as "interesting, look later" rather than "someone should look now."

Because the affected stations outnumbered the honest neighbors in dense corridors (the Netherlands, mostly — our own backyard), the blend trusted the majority. Bad majority, bad output.

How we found out

A user's irrigation controller watered their garden at 3am and they emailed us, politely, with a chart. Not our monitoring. We've made peace with that, mostly.

What we did

What we changed so it doesn't repeat

3 June 2025, 21:30–22:14 UTC · degraded

Frankfurt ingest backlog after cache node failureResolved

A cache node in Frankfurt died mid-evening and failover worked exactly as designed, which is the nicest thing we've ever said about failover. For 44 minutes, responses were served but up to four minutes staler than usual, and a handful of 503s escaped while the anycast re-converged. Community-token holders got an email; anonymous callers just saw a slightly tired API.

No data was lost — the ingest queue caught up within the hour.

How we measure uptime

Uptime is measured by external probes in three regions hitting /v1/current every minute. A day counts as amber if error rates exceeded 1% or any published data was later found wrong (the humidity day above is amber for honesty, not downtime). Scheduled maintenance — a few per year, announced on the forum — counts as downtime if it takes the API offline, because pretending otherwise would be silly.

Note: this page is hand-written after incidents rather than generated live. If it disagrees with reality, trust /v1/health — then please email hello@freeweatherapi.org and tell us to update this page. It's only happened once.