CDC Environmental Public Health Tracking API
Free CDC Environmental Public Health Tracking API with no key: asthma, air quality, drinking water, heat illness, lead poisoning and climate health measures by state and county.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the CDC Environmental Public Health Tracking API?
The CDC Environmental Public Health Tracking Network API is a free, key-free service exposing environmental health measures for the United States. It covers content areas such as air quality, asthma, drinking water, heat-related illness and childhood lead poisoning, queryable by measure, geography and year.
The Tracking Network exists to link environmental hazards to health outcomes, which is why its data is organised in a way no other CDC API is. You do not query a dataset; you navigate a hierarchy — content area, then measure, then stratification level, then geography and time — and every level has its own metadata endpoint. The example fetches the top of that tree: 20-odd content areas from Air Quality and Asthma through to Drought, Heat-related Illness and Pesticide Exposures.
That structure means the first thing to build is a discovery loop rather than a data call. Fetch the content areas, then the measures within one, then the geographic levels and years that measure supports, and only then request values — asking for a county-level breakdown of a measure published only by state returns nothing useful. The payoff is genuine comparability across states and years. Interpret carefully: many measures are modelled estimates rather than direct measurements, small-area values carry wide uncertainty, and suppression rules hide small counts. The network documents this per measure, and it matters before drawing any conclusion about a local area.
Quick facts
- Base URL
https://ephtracking.cdc.gov/apigateway/api/v1- Authentication
- No API key or account. The data is US government work in the public domain; CDC asks that measures be cited with their content area and year.
- Rate limit
- No published limit. Metadata endpoints are small and highly cacheable — fetch the hierarchy once rather than per request.
- Pricing
- Free, public domain.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the CDC Environmental Public Health Tracking API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List the environmental health content areas available
GET https://ephtracking.cdc.gov/apigateway/api/v1/contentareas/json
curl 'https://ephtracking.cdc.gov/apigateway/api/v1/contentareas/json'const res = await fetch("https://ephtracking.cdc.gov/apigateway/api/v1/contentareas/json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://ephtracking.cdc.gov/apigateway/api/v1/contentareas/json", timeout=20)
res.raise_for_status()
print(res.json())[
{
"id": "11",
"name": "Air Quality",
"shortName": "AQ"
},
{
"id": "3",
"name": "Asthma",
"shortName": "AS"
},
{
"id": "18",
"name": "Biomonitoring: Population Exposures ",
"shortName": "BIO"
},
{
"id": "5",
"name": "Birth Defects",
"shortName": "BD"
},
{
"id": "42",
"name": "Built Environment",
"shortName": "BE"
},
{
"id": "9",
"name": "Cancer",
"shortName": "CR"
},
{
"id": "10",
"name": "Childhood Cancers",
"shortName": "CHCR"
},
{
"id": "6",
"name": "Childhood Lead Poisoning",
"shortName": "CLP"
},
{
"id": "23",
"name": "Chronic Obstructive Pulmonary Disease (COPD)",
"shortName": "COPD"
},
{
"id": "43",
"name": "Demographics & Socioeconomics",
"shortName": "DESO"
},
{
"id": "16",
"name": "Disability",
"shortName": "DD"
},
{
"id": "1",
"name": "Drinking Water",
"shortName": "DWQ"
},
{
"id": "25",
"name": "Drought",
"shortName": "DR"
},
{
"id": "13",
"name": "Health Status",
"shortName": "PV"
},
{
"id": "4",
"name": "Heart Disease & Stroke",
"shortName": "MI"
},
{
"id": "35",
"name": "Heat & Heat-related Illness (HRI)",
"shortName": "HHI"
},
{
"id": "29",
"name": "Hormone Disorders",
"shortName": "HD"
},
{
"id": "20",
"name": "Pesticide Exposures",
"shortName": "PE"
},
{
"id": "36",
"name": "Precipitation & Flooding",
"shortName": "PF"
},
{
"id": "40",
"name": "PuParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(endpoint) /contentareas/json | path | Optional | Top-level topics such as Air Quality, Asthma and Drinking Water. /contentareas/json |
(endpoint) /indicators/{contentAreaId}/json | path | Optional | Indicators within a content area. /indicators/3/json |
(endpoint) /measures/{indicatorId}/json | path | Optional | Measures within an indicator, each with its own id. /measures/99/json |
(endpoint) /geographicLevels/{measureId}/json | path | Optional | Which geographic levels a measure supports — state, county or census tract. /geographicLevels/99/json |
(endpoint) /getCoreHolder/{measureId}/... | path | Optional | The data endpoint itself, taking measure, stratification, geography and year segments. /getCoreHolder/99/1/ALL/ALL/2020/0/0 |
(format) | path segment | Required | `json` or `csv`, as the final path segment on metadata endpoints. json |
Response fields
(array of objects)array- Metadata endpoints return a bare array with no envelope.
idstring- Identifier for the content area, indicator or measure — as a string, and the path parameter for the next level down.
namestring- Display name, for example `Childhood Lead Poisoning` or `Heat & Heat-related Illness (HRI)`.
shortNamestring- Abbreviation such as `AQ`, `AS` or `CLP`, used in the network's own documentation.
(data endpoints)object- The core data holder returns rows with geographic identifiers, the year, the value and confidence interval fields where applicable.
What you can build with the CDC Environmental Public Health Tracking API
- Map asthma prevalence against air quality by county
- Track heat-related illness trends across states
- Monitor childhood lead poisoning screening rates
- Build an environmental health dashboard for a region
- Correlate drinking water quality measures with health outcomes
Common errors and how to fix them
Empty data for a valid measure
The geographic level is not supported for that measure.
Fix: Query `/geographicLevels/{measureId}` first. Many measures publish at state level only, and a county request simply returns nothing.
Cannot construct the data URL
The core holder path takes several positional segments.
Fix: Walk the metadata hierarchy to collect measure id, stratification level, geography and year rather than guessing the path.
Missing values in a time series
Suppression hides small counts.
Fix: Gaps are usually deliberate suppression for confidentiality or reliability, not absent data. Do not interpolate across them.
Modelled values read as measurements
Several measures are statistical estimates.
Fix: Check the measure's documentation. Modelled air quality estimates in particular are outputs of a model, not readings from a monitor in that county.
CDC Environmental Public Health Tracking API — frequently asked questions
Is the CDC Tracking API free?
Yes, free with no key or registration. The data is US government work in the public domain, and CDC asks that measures be cited with their content area and year.
Why do I need several requests before I can get data?
Because the network is organised as a hierarchy — content area, indicator, measure, geographic level, year — and each measure supports a different combination. Walking the metadata endpoints first is how you discover a valid query; it is also cheap, since that metadata rarely changes.
What does it mean that some measures are modelled?
That the value is a statistical estimate produced from monitoring data and other inputs rather than a direct measurement at that location. Modelled air quality estimates are the common case. They are useful for comparison across areas but should never be presented as a reading taken in that county.
Can I use this to assess health risk where I live?
It shows population-level environmental and health indicators for an area, which is context rather than personal risk. Small-area estimates carry wide uncertainty and suppression gaps, and individual exposure and health depend on factors this data does not capture.
Tools that pair with this API
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
CSV Filter
Filter CSV rows online by column conditions — equals, contains, regex, empty, numeric ranges — combined with AND/OR. Keep or remove matches, fully in-browser.
CSV Column Statistics Calculator
Profile a CSV column by column: type, blanks, distinct values, min, max, mean, median, standard deviation and percentiles, plus top values — all in-browser.
CDC Environmental Public Health Tracking is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.