Everything this site measures is published here as plain JSON and CSV under CC BY 4.0 โ free to use, including commercially, with attribution. No key, no signup, no rate limit beyond ordinary politeness. Rebuilt every 30 minutes; last write 2026-08-22 00:36 UTC.
Size and containment for every wildfire of 1,000+ acres in Nevada, Utah, Arizona, Colorado and California, one row per incident per day โ 39 incidents, 413 readings, 2026-08-09 to 2026-08-22, with a multi-day curve on 38 of them.
The reason this exists: the federal NIFC/WFIGS feed publishes a current snapshot and overwrites it. Read it 48 times a day and keep the last reading of each UTC day and you have the growth curve the snapshot implies but never shows โ how fast a fire ran, which day it blew up, when containment actually started moving. That record is what is published here. Incidents stay in the file permanently once they enter it, including after they drop off the active feed; when that happens the file says only that NIFC stopped listing the incident, because the feed does not say whether a fire was contained or declared out and we do not guess. Acreage sometimes falls when a perimeter is remapped โ those revisions are kept as read rather than smoothed away.
growth-history.csv (413 rows) ยท archive.json (nested daily history) ยท incidents.json (current read) ยท browse it as pages
date โ UTC date of the reading, YYYY-MM-DDincident_slug โ stable key for the incident; also its page at /fires/{slug}incident_name โ incident name as published by NIFCstate โ NV, UT, AZ, CO or CAacres โ size in acres on that datecontainment_pct โ 0โ100; empty when the feed reported no valuecause โ natural, human or undetermined, as last reporteddiscovered โ discovery date, YYYY-MM-DDlat / lng โ incident point location, WGS84 decimal degreesWeather, AQI, wildfire proximity, river flow where it matters, and a 1โ100 hikeability score for 46 trails, refreshed every 30 minutes. Every record carries its observation timestamp and names the source of each reading; a value we could not fetch is reported as missing rather than backfilled with an old one, because these numbers get used to make safety decisions.
trails-index.json (all trails)
ยท /data/conditions/{slug}.json per trail
ยท how the score is computed
Average high, average low, and wet-day count by month for 46 trailheads, computed from ERA5 reanalysis at the trail's own coordinates. The point is the coordinates: a national gridded normal will tell you about the nearest town, which is frequently several thousand feet below the trail and a different month-by-month regime entirely.
normals.csv (one row per trail per
month) ยท /data/climate/{slug}.json
ยท fields: month,
avg_high_f, avg_low_f,
wet_days
“Wildfire growth data compiled by alwayshave.fun (CC BY 4.0), from the NIFC/WFIGS incident feed” is plenty. A link to the page or dataset you used is appreciated and lets readers check the current numbers themselves.
Sources: the NIFC/WFIGS Incident Locations feed (US interagency, public domain), Open-Meteo for weather and ERA5 history (CC BY 4.0), AirNow for air quality, and NASA FIRMS for satellite fire detections. The CC BY 4.0 license here covers our compilation โ the daily record, the per-trail joins, the scoring โ not the upstream feeds, which carry their own terms. Cite them too if you use those fields directly.
These files are the API. They are static JSON and CSV on a CDN, regenerated every 30 minutes; fetch them on any schedule you like. There is no versioned endpoint and no stability guarantee on field names yet โ if you build something on this and want a heads-up before anything changes, say so and we will keep a changelog.
It is exactly as accurate as the sources, which is the honest answer. We do not model, interpolate, or estimate anything, and we do not correct the feeds. What we add is the time dimension โ 48 reads a day, stamped โ plus the joins between fires, trails, and air quality. Where a source disagrees with a ground monitor (smoke models routinely read high against ground PM2.5) the raw value is what appears, not a reconciled one.