Get daily visibility history
Per-day visibility aggregates, handy for charts. Returns one entry per day
in the window, oldest first, including days with no reports
(report_count 0, empty state_distribution, and null dominant_state
and out_percentage).
Supports conditional GET (ETag / If-None-Match).
days?integerWindow length in days. Defaults to 30.
3073090region?stringRegion slug. Defaults to puget_sound.
"puget_sound"If-None-Match?stringThe ETag from an earlier response. If the data has not changed you get an empty 304 Not Modified.
Daily history.
application/json- response
days*array<>One entry per day in the window, oldest first.
meta*curl -X GET 'https://api.isthemountainout.com/v1/visibility-history' \ -H 'If-None-Match: "5d41402abc4b2a76b9719d911017c592"'{ "days": [ { "date": "2026-08-09", "report_count": 12, "state_distribution": { "mountain_out": 0.5833, "mountain_not_out": 0.4167 }, "dominant_state": "mountain_out", "out_percentage": 0.5833 }, { "date": "2026-08-10", "report_count": 0, "state_distribution": {}, "dominant_state": null, "out_percentage": null } ], "meta": { "region": "puget_sound", "days": 7, "generated_at": "2026-08-15T20:14:09+00:00" }}Get lifetime report count GET
Returns the total number of community reports submitted so far.
Get today's map hexagons GET
Map data for today, as a flat list of H3 hexagon cells (not GeoJSON), each with report counts and a suggested color. See `/map/{date}` for past days. Supports conditional GET (`ETag` / `If-None-Match`).