About 40% of our current-conditions data comes from weather stations owned by hobbyists, schools, farms and one very committed lighthouse keeper. This page is about them — and about joining them.
Snapshot of active stations by approximate location. The live version on the forum is pannable and slightly more flattering to the Pacific.
Any station that can push JSON over HTTPS — or be forwarded by software you probably already run — can join. In practice that's Ecowitt, Davis (via WeatherLink export), Netatmo (via their API) and anything that speaks the CWOP/APRS format. A Raspberry Pi with a cheap BME280 counts.
# minimal payload — POST every 5–10 minutes curl -X POST "https://ingest.freeweatherapi.org/v1/obs" \ -H "X-Station-Token: stn_5f2e91" \ -H "Content-Type: application/json" \ -d '{ "observed_at": "2026-10-15T14:20:00Z", "temperature_2m": 14.3, "relative_humidity": 79, "pressure_msl": 1014.2, "wind_speed_10m": 4.1, "wind_direction_10m": 247, "precipitation": 0.2 }'
Every observation passes four automated checks before it can influence the /v1/current blend. Rejected observations are stored (flagged) but not served:
| Check | What it catches | Typical culprit |
|---|---|---|
| Range | Physically implausible values (temp outside −80…+55 °C, humidity outside 0–100%) | Dead sensor stuck at a rail value |
| Temporal | Spikes and impossible rates of change (>8 °C/min) | Sun hitting the radiation shield at low angles |
| Run consistency | Stuck values repeating for hours, or midnight resets | Firmware quirks, low batteries |
| Spatial (buddy check) | Disagreement with nearby stations and model background beyond tolerance | Wrong coordinates, station indoors, or a genuinely local microclimate (we allow for that — see below) |
The buddy check is the contentious one. If your station disagrees with its neighbors, we don't auto-delete it — microclimates are real, and valley fog or a sea breeze can be a legitimate 4 °C disagreement. Stations that consistently disagree get a forum ping and a human look. We'd rather have a slightly odd but honest station than a smoothed one.
Observations older than 30 minutes don't enter /v1/current, however good they were. Current means current.
Station pages show the identifier, rough coordinates (jittered to about 1 km — the "lighthouse keeper" asked, and we agreed), elevation, first-seen date and uptime percentage. Nothing personal. If you want your station listed under a name instead of an ID, that's a checkbox in your station settings.
Honestly? Some do it for the badge on the forum. Most do it because their neighborhood's weather is badly served by the nearest airport, and a station in the network makes local forecasts (ours and everyone else's) better — including their own home automation. A few farmers run three or four stations across their land and use /v1/history on their own coordinates for spray-window planning. That's the good stuff.
We don't sell anything and have no affiliate deals. From maintainer experience: a €35 BME280 on a Pi out in the garden beats a €300 station inside a conservatory. If you're buying, look for a proper radiation shield and site the thing in open air, 2 m up, away from walls and barbecues. The barbecue rule is real. We have graphs.
Questions about a specific station or sensor? The forum's station-help section is the fastest route: hello@freeweatherapi.org works too, but the forum has more people who've seen your exact firmware bug.