For researchers
Open data API
The core mortality and natality charts on this site are drawn from a handful of plain JSON files, listed below. They're served with open CORS, cached at the edge, and free to use, a small, stable dataset that stitches CDC's fragmented series into one shape, 1960 (natality) / 1968 (mortality) to present. A few sections, Deaths by Age, Life Expectancy, seasonality, State Comparison, and the International comparison, pull live from data.cdc.gov or the World Bank instead and aren't part of this file-based API.
Endpoints
Base URL https://whywedie.org/data, all GET, no key, no rate limit today.
/meta.json~3 KB- Pipeline provenance, which CDC WONDER databases and year ranges feed each snapshot.
/mortality.json~2.5 MB- Annual US deaths, national. All-cause + the NCHS 113-cause list (1999–present) + broad ICD chapters and sub-chapters (1968–1998). Deaths, population, crude rate, age-adjusted rate.
/mortality_demographic.json~15 MB- Annual US deaths by cause × {sex | race | age}, 1999–present. Race categories change at the 2020/2021 seam (bridged → single-race); the age breakdown has no age-adjusted-rate figure.
/mortality_monthly.json~12 KB- All-cause US deaths by calendar month, 2018–present (CDC provisional).
/natality.json~8 KB- Annual US births, 1960–present, with the general fertility rate and crude birth rate.
/animal_incidents.json~0.5 MB- Animal-related deaths by US state from separate sources that must not be summed: CDC WONDER death-certificate counts (ICD-10 W53-W59, W64, X20-X29; counts of 1-9 are marked suppressed, never zero) and NHTSA FARS deaths in fatal crashes where a live animal was the first harmful event (1999-2024).
/natality_monthly.json~4 KB- US births by calendar month, 2023–present (CDC provisional).
Each file carries source, fetchedAt, coverage (with a note spelling out the caveats), and per-year / per-cause / per-month arrays aligned to a shared axis. Fetch one and read the keys. The shape is meant to be obvious.
Examples
Shell
curl -s https://whywedie.org/data/natality.json | jq '.byYear["2023"]'JavaScript
const res = await fetch('https://whywedie.org/data/mortality.json')
const data = await res.json()
// data.byCause["10:#Diseases of heart (I00-I09,I11,I13,I20-I51)"].deathsPython
import requests
data = requests.get("https://whywedie.org/data/mortality.json").json()
years = data["years"] # [1968, 1969, ...]
heart = data["byCause"]["10:#Diseases of heart (I00-I09,I11,I13,I20-I51)"]
print(dict(zip(heart["years"], heart["deaths"])))Attribution & licence
The underlying figures are U.S. Government works (CDC / NCHS, via CDC WONDER and data.cdc.gov) and carry no copyright. This project's compilation of them is released under CC0 1.0, which is effectively public domain: use it for anything, with no permission or attribution required. A reference to "whywedie.org" (and to CDC as the primary source) is still appreciated, and if you publish something built on it, a link back helps others find the data.
No guarantees, and this may not stay free
This is a best-effort service on shared hosting. No uptime guarantee, no support SLA, and the file shapes may change without notice (breaking changes would move to a new path). Snapshots refresh on an irregular manual schedule, so check fetchedAt. Heavy or automated use may lead to rate limiting, and the API may later move behind a key or onto a paid or managed platform. If you're relying on it for something real, cache your own copy. A heads-up that it's in use is helpful too.