Data
The open JSON API
Every page on this site has a machine-readable twin: the same facts as plain JSON, free to fetch, with a source and a build date on every record. Start at /api/index.json for the full list of endpoints and record counts.
| File | What it holds | Example |
|---|---|---|
/api/index.json | Counts, license, and the URL pattern for every endpoint below. | /api/index.json |
/api/zips.json, /api/places.json, /api/counties.json, /api/water.json | A short row — name, location, link — for every ZIP code, place, county or water system. | /api/zips.json |
/api/topics.json | The registry of all 68 topics: chapter, question, unit, source and legend. | /api/topics.json |
/api/topics/{mode}.json | One topic's value and map color for every Ohio ZIP code. | /api/topics/radon.json |
/api/zip/{zip}.json | A ZIP code's identity, water source, ten facts, all 68 topics and its raw compact properties. | /api/zip/43230.json |
/api/place/{slug}.json | A place's identity, ZIP codes, water systems and local history. | /api/place/gahanna.json |
/api/county/{slug}.json | A county's tables — health, jobs, farms, storms and more — plus its places and ZIP codes. | /api/county/franklin.json |
/api/water/{pwsid}.json | A water system's record: the source, the chain of utilities, plants, wells and the ZIP codes it serves. | /api/water/OH2504412.json |
/api/schema.json | What every compact field name in the records above means, its unit and its source. | /api/schema.json |
Fetching it
Every file under /api/ is served as UTF-8 JSON with Access-Control-Allow-Origin: *, so a script or an app in any browser can fetch it directly, with no key and no server of your own required. Files are pretty-printed for readability and cached for a day.
How often it updates
Not everything on the site updates on the same schedule. Building permits refresh nightly for Columbus and weekly for Westerville. Air quality, home listing prices, Lake Erie water levels, drought conditions, weather warnings and groundwater levels refresh monthly. Hospital and nursing home records, federal enforcement data, wages and employment, and overdose counts refresh quarterly. Most other topics — Census estimates, school ratings, health rankings, cancer rates, crime, bridges, colleges and the rest — refresh yearly, each on its own source's release schedule. The build date at the bottom of every page is the day that page's numbers were current.
The schema
The ZIP code pages and the API keep their numbers in compact form — short keys like r for radon or hv for home value — to keep the map and the pages fast. /api/schema.json names every one of those keys in full, in order, with its unit and the source behind it, so the raw data is never a mystery.
This build's API, in numbers
As of 2026-09-15, /api/index.json lists 1,233 ZIP codes, 2,232 places, 88 counties, 1,131 water systems and 68 topics, each with its own JSON record. A topic without oracle data yet (see HANDOFF.md) still gets a record, with null values where the build has not reached it.