CMS Provider Data Catalog API
Free CMS Provider Data Catalog API with no key: hospital, nursing home, hospice and dialysis quality ratings, measure scores and facility details for the United States.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the CMS Provider Data Catalog API?
The CMS Provider Data Catalog API is a free, key-free service publishing the datasets behind Medicare's Care Compare tools. It returns facility records for hospitals, nursing homes, hospices, home health agencies and dialysis centres, with quality star ratings and the measure counts behind them.
These are the datasets that power Medicare's public comparison tools, exposed through a DKAN-based datastore query API. A hospital record carries far more than an address: the example includes ownership type, whether emergency services are offered, a birthing-friendly designation, an overall star rating, and then counts of how many mortality, safety, readmission, patient-experience and timely-care measures the facility performed better, no differently, or worse than the national average.
That structure is the key to using the data honestly. The overall rating is a compressed summary of dozens of measures, and the group counts are what let you see whether a four-star hospital is uniformly good or strong on safety while weak on readmissions. Footnote fields sit alongside each group and carry the reason a value is missing — too few cases, data not submitted — which is why blank means "not reported" rather than "zero". Small facilities frequently have too few cases to be rated at all. Values arrive as strings, including the ratings, and the `facility_id` is the CMS Certification Number that joins these datasets to each other.
Quick facts
- Base URL
https://data.cms.gov/provider-data/api/1- Authentication
- No API key or account. CMS provider data is US government work in the public domain, published for public comparison of care providers.
- Rate limit
- No published limit. Full dataset downloads are available and are the better route for whole-country analysis.
- Pricing
- Free, public domain.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the CMS Provider Data Catalog 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. Query the hospital general information dataset
GET https://data.cms.gov/provider-data/api/1/datastore/query/xubh-q36u/0?limit=2
curl 'https://data.cms.gov/provider-data/api/1/datastore/query/xubh-q36u/0?limit=2' \
-H 'Accept: application/json'const res = await fetch("https://data.cms.gov/provider-data/api/1/datastore/query/xubh-q36u/0?limit=2", {
headers: {
"Accept": "application/json",
},
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
headers = {
"Accept": "application/json",
}
res = requests.get("https://data.cms.gov/provider-data/api/1/datastore/query/xubh-q36u/0?limit=2", headers=headers, timeout=20)
res.raise_for_status()
print(res.json()){
"results": [
{
"facility_id": "010001",
"facility_name": "SOUTHEAST HEALTH MEDICAL CENTER",
"address": "1108 ROSS CLARK CIRCLE",
"citytown": "DOTHAN",
"state": "AL",
"zip_code": "36301",
"countyparish": "HOUSTON",
"telephone_number": "(334) 793-8701",
"hospital_type": "Acute Care Hospitals",
"hospital_ownership": "Government - Hospital District or Authority",
"emergency_services": "Yes",
"meets_criteria_for_birthing_friendly_designation": "Y",
"hospital_overall_rating": "4",
"hospital_overall_rating_footnote": "",
"mort_group_measure_count": "8",
"count_of_facility_mort_measures": "8",
"count_of_mort_measures_better": "0",
"count_of_mort_measures_no_different": "8",
"count_of_mort_measures_worse": "0",
"mort_group_footnote": "",
"safety_group_measure_count": "8",
"count_of_facility_safety_measures": "7",
"count_of_safety_measures_better": "3",
"count_of_safety_measures_no_different": "4",
"count_of_safety_measures_worse": "0",
"safety_group_footnote": "",
"readm_group_measure_count": "11",
"count_of_facility_readm_measures": "11",
"count_of_readm_measures_better": "1",
"count_of_readm_measures_no_different": "9",
"count_of_readm_measures_worse": "1",
"readm_group_footnote": "",
"pt_exp_group_measure_count": "15",
"count_of_facility_pt_exp_measures": "15",
"pt_exp_group_footnote": "",
"te_group_measure_count": "10",
"count_of_facility_te_measures":Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(dataset id) | path segment | Required | Dataset identifier in the datastore query path. `xubh-q36u` is hospital general information. xubh-q36u |
(index) | path segment | Required | Distribution index within the dataset, almost always `0`. 0 |
limit | query | Optional | Rows per page. Defaults are small, so set it explicitly. 2 |
offset | query | Optional | Zero-based offset for paging. 0 |
conditions | query | Optional | Filter conditions as indexed parameters over a property, operator and value. conditions[0][property]=state |
(endpoint) /metastore/schemas/dataset/items | path | Optional | List every dataset in the catalogue with its identifier and description. /metastore/schemas/dataset/items |
Response fields
results[]array- The matched rows. All values are strings, including ratings and counts.
results[].facility_idstring- CMS Certification Number. The join key across every CMS provider dataset, with leading zeros that must be preserved.
results[].facility_name / address / citytown / state / zip_codestring- Facility identity and location fields.
results[].hospital_typestring- Such as `Acute Care Hospitals` or `Critical Access Hospitals`. Ratings are not comparable across types.
results[].hospital_ownershipstring- Ownership category — government, proprietary, voluntary non-profit and so on.
results[].hospital_overall_ratingstring- One to five stars as a string, or blank when the facility has too few cases to rate.
results[].count_of_*_measures_better / no_different / worsestring- How many measures in each group beat, matched or trailed the national average. The detail behind the star rating.
results[].*_group_footnotestring- Why a group is missing or suppressed. Blank values are frequently explained here.
What you can build with the CMS Provider Data Catalog API
- Compare hospital quality ratings within a state or region
- Build a provider lookup with quality context
- Analyse the relationship between ownership type and outcomes
- Identify facilities with unreported or suppressed measures
- Join provider quality data to other CMS datasets by certification number
Common errors and how to fix them
Leading zeros lost from facility_id
Certification numbers were cast to integers.
Fix: `010001` is a fixed-width string. Casting it to a number breaks every join across CMS datasets.
Blank rating treated as zero
Blank means not rated, not bad.
Fix: Read the corresponding footnote field. Small facilities routinely have too few cases for a rating to be calculated.
Ratings compared across facility types
Different measure sets apply.
Fix: Critical access hospitals and acute care hospitals are assessed differently. Filter on `hospital_type` before comparing.
Only a few rows returned
Default paging is small.
Fix: Set `limit` and page with `offset`, or download the full dataset distribution for national analysis.
CMS Provider Data Catalog API — frequently asked questions
Is the CMS Provider Data API free?
Yes, free with no key or registration. It is US government work in the public domain, published specifically so that the public can compare care providers.
What is the facility_id?
The CMS Certification Number, a fixed-width identifier assigned to Medicare-certified facilities. It joins the provider datasets to one another, and its leading zeros are significant — treat it as a string throughout.
Does a five-star rating mean a hospital is better?
It means the facility scored well on the specific measures CMS aggregates, which cover mortality, safety, readmission, patient experience and timeliness. It does not account for case mix beyond CMS's own adjustments, does not cover every service a hospital provides, and is not comparable across facility types. The per-group measure counts give a far more informative picture than the star alone.
Why do some hospitals have no rating at all?
Usually because they had too few cases for the measures to be statistically reliable, or did not submit the required data. The footnote fields alongside each measure group state the reason, which is why blank must not be read as a poor score.
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.
CMS Provider Data Catalog 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.