CMS Hospital Quality Data: Ratings and Measures | $1/1K
Pricing
from $1.00 / 1,000 results
CMS Hospital Quality Data: Ratings and Measures | $1/1K
$1 per 1,000 results, platform usage included. US hospital star ratings and quality measures from the official CMS Provider Data Catalog: hospital details, complications and deaths, infections, readmissions, patient survey, timely care. No key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
One Dollar Store
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
CMS Hospital Quality: US hospital star ratings and quality measures
$1 per 1,000 rows. Platform usage included. No rental, no minimum.
The four most used CMS hospital quality actors on Apify Store charge $2.00 to $10.00 per 1,000 results (Store prices checked 20 October 2026). This actor returns the same official CMS data for $1.
Read US hospital data from the official CMS Provider Data Catalog: the hospital list with the overall star rating (1 to 5), and the five quality measure tables behind it: timely and effective care, complications and deaths, healthcare associated infections, unplanned hospital visits (readmissions) and the patient survey (HCAHPS). Filter by state, city, hospital name, CMS ID or measure. Each row names the table it came from. No API key and no account with CMS.
New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link). Runs from a free plan account return the first 10 results; any paid plan returns everything you ask for, up to your limit.What it costs
| Rows | This actor | Most used CMS hospital quality actors on the Store |
|---|---|---|
| 1,000 | $1.00 | $2.00 to $10.00 |
| 10,000 | $10.00 | $20 to $100 |
| 100,000 | $100.00 | $200 to $1,000 |
Plus $0.001 per run. One row is one hospital in the hospital list, or one hospital and measure in a measure table. A run returns at most 10,000 rows. The full hospital list was 5,419 hospitals on 20 October 2026, about $5.42. All hospitals of one state with their star ratings is one row per hospital: California is 377 rows, about $0.38. All five measure tables for one hospital were 168 rows in our test, about $0.17.
Why people switch
- One flat price. Compute is included, so the bill follows the number of rows and nothing else. A test run of 100 hospital rows measured about $0.007 of platform cost per 1,000 rows.
- The whole catalog in one actor. The hospital list and five measure tables in one input. Choose one table or several, and each row says which table it came from.
- Filters that save money. The measure tables hold tens of thousands of rows each. Narrow by state, city, name, CMS ID or measure code and pay only for the rows you need.
- Numbers, not text. Scores, counts and percentages are numbers. Dates are ISO dates. When CMS shows "Not Available" where a number belongs, the field is left out instead of holding text.
- Straight from CMS. It reads the Provider Data Catalog on data.cms.gov, with no key and no third party in between.
Quick start
- Open the actor, keep the example values, press Start.
- Or paste this input, which returns 100 California hospitals with their star rating:
{ "datasets": ["hospital-info"], "states": ["CA"], "maxItems": 100 }
- Download the results as JSON, CSV or Excel, or read them through the API.
For the hip and knee replacement complication rates of Boston hospitals, use { "datasets": ["complications-deaths"], "states": ["MA"], "city": "Boston", "measureIds": ["COMP_HIP_KNEE"] }.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~cms-hospital-quality-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"datasets": ["hospital-info"], "states": ["CA"], "minOverallRating": 4, "maxItems": 100}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("one_dollar_store/cms-hospital-quality-data").call(run_input={"datasets": ["hospital-info"], "states": ["CA"], "minOverallRating": 4, "maxItems": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["hospitalName"], item["city"], item["overallRating"])
Use it from an AI assistant
Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:
https://mcp.apify.com?tools=one_dollar_store/cms-hospital-quality-data
Then ask, for example: "List the hospitals in Minnesota with at least 4 stars and show their star ratings." or "Get the patient survey results for the hospital with CMS ID 050002."
Switching from another CMS hospital actor
The tables are chosen in datasets. Place filters are states (two letter codes), city and hospitalName. A single hospital is facilityIds (the six character CMS ID). Measures are measureIds. Star rating is minOverallRating. The core output fields are dataset, facilityId, hospitalName, city, state, measureId, measureName, score and overallRating. One row is one hospital in the hospital list, or one hospital and measure in a measure table.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
datasets | list of choices | hospital-info | hospital-info (hospital list with the star rating), timely-effective-care, complications-deaths, healthcare-infections, unplanned-visits or patient-survey. Pick one or several. |
states | list of text | all | Two letter state codes, for example CA or NY. Empty means all states and territories. |
city | text | none | Only hospitals in this city or town, for example Boston. |
hospitalName | text | none | Only hospitals whose name contains this text, without regard to case, for example Mayo. |
facilityIds | list of text | none | Six character CMS Certification Numbers (CCN), for example 010001. |
measureIds | list of text | none | Only these measures, for example MORT_30_AMI or HAI_1_SIR. Applies to the measure tables, not to the hospital list. |
minOverallRating | number | 0 | Only hospitals rated at least this many stars (1 to 5). Hospitals without a rating are left out. Applies to the hospital list only. |
maxItems | number | 100 | Most rows in the run. Minimum 10, maximum 10,000. |
Filters combine: a state plus a city plus a name narrows the list. Several states, CMS IDs or measures are read one combination at a time, up to 300 combinations per run.
Output fields
Every row has dataset, the hospital columns and scrapedAt. The other fields depend on the table. Fields CMS leaves empty are left out, and so is a "Not Available" in a number field. Text fields such as comparedToNational keep CMS's own words, including "Not Available".
| Field | Meaning |
|---|---|
dataset | The CMS table the row comes from, for example Hospital General Information or Complications and Deaths. |
facilityId | Six character CMS Certification Number of the hospital. |
hospitalName, address, city, state, zipCode, county, phone | Where the hospital is and how to reach it, as CMS lists it. |
hospitalType, ownership | Hospital list only. For example Acute Care Hospitals, and Proprietary. |
emergencyServices | Hospital list only. True when the hospital provides emergency services. |
birthingFriendly | Hospital list only. True when CMS lists the hospital as meeting the Birthing-Friendly criteria. |
overallRating, overallRatingNote | Hospital list only. CMS overall star rating from 1 to 5, and the footnote code when it is missing. |
ratingGroups | Hospital list only. How many measures sit behind the rating, by group (mortality, safety, readmission, patientExperience, timelyEffectiveCare), with better, noDifferent and worse counts where CMS gives them. |
measureId, measureName | Measure tables. The CMS measure code and name, or the survey question for patient survey rows. |
condition | Timely and effective care only. The condition group, for example Emergency Department. |
score, scoreText | The score as a number. When CMS gives a category instead (for example medium or very high) it is in scoreText. |
comparedToNational | How the hospital compares with the national rate, as CMS words it. |
denominator, lowerEstimate, higherEstimate | Cases behind the score and the interval around it, when CMS gives them. |
sample, patients, patientsReturned | Sample size, and the patient counts of the unplanned visits table. |
answer, answerPercent, starRating, linearMeanValue | Patient survey only. The answer category, the share of patients who gave it, the survey star rating and the linear mean score. |
completedSurveys, responseRatePercent | Patient survey only. Number of completed surveys and the response rate. |
startDate, endDate | The reporting period of the measure, as ISO dates. |
footnote | CMS footnote code or text for the row. |
scrapedAt | When the actor read the data. |
Sample results
Real rows from test runs on 20 October 2026: three California hospitals from the hospital list, then one row each from the timely and effective care table and the complications and deaths table.
[{"dataset": "Hospital General Information", "facilityId": "050002", "hospitalName": "ST ROSE HOSPITAL", "address": "27200 CALAROGA AVE", "city": "HAYWARD", "state": "CA", "zipCode": "94545", "county": "ALAMEDA", "phone": "(510) 782-6200", "hospitalType": "Acute Care Hospitals", "ownership": "Voluntary non-profit - Church", "emergencyServices": false, "overallRating": 1, "ratingGroups": {"mortality": {"measuresReported": 6, "better": 0, "noDifferent": 6, "worse": 0}, "safety": {"measuresReported": 5, "better": 0, "noDifferent": 5, "worse": 0}, "readmission": {"measuresReported": 5, "better": 0, "noDifferent": 3, "worse": 2}, "patientExperience": {"measuresReported": 15}, "timelyEffectiveCare": {"measuresReported": 6}}, "scrapedAt": "2026-10-20T08:43:24.379Z"},{"dataset": "Hospital General Information", "facilityId": "050006", "hospitalName": "PROVIDENCE ST JOSEPH HOSPITAL", "address": "2700 DOLBEER ST", "city": "EUREKA", "state": "CA", "zipCode": "95501", "county": "HUMBOLDT", "phone": "(707) 445-8121", "hospitalType": "Acute Care Hospitals", "ownership": "Voluntary non-profit - Private", "emergencyServices": true, "birthingFriendly": true, "overallRating": 4, "ratingGroups": {"mortality": {"measuresReported": 8, "better": 0, "noDifferent": 8, "worse": 0}, "safety": {"measuresReported": 7, "better": 1, "noDifferent": 6, "worse": 0}, "readmission": {"measuresReported": 11, "better": 3, "noDifferent": 8, "worse": 0}, "patientExperience": {"measuresReported": 15}, "timelyEffectiveCare": {"measuresReported": 10}}, "scrapedAt": "2026-10-20T08:43:24.379Z"},{"dataset": "Hospital General Information", "facilityId": "050008", "hospitalName": "CALIFORNIA PACIFIC MEDICAL CTR-DAVIES CAMPUS HOSP", "address": "601 DUBOCE AVENUE", "city": "SAN FRANCISCO", "state": "CA", "zipCode": "94117", "county": "SAN FRANCISCO", "phone": "(415) 600-6000", "hospitalType": "Acute Care Hospitals", "ownership": "Voluntary non-profit - Other", "emergencyServices": false, "overallRating": 3, "ratingGroups": {"mortality": {"measuresReported": 4, "better": 0, "noDifferent": 4, "worse": 0}, "safety": {"measuresReported": 6, "better": 1, "noDifferent": 5, "worse": 0}, "readmission": {"measuresReported": 5, "better": 0, "noDifferent": 4, "worse": 1}, "patientExperience": {"measuresReported": 15}, "timelyEffectiveCare": {"measuresReported": 6}}, "scrapedAt": "2026-10-20T08:43:24.379Z"},{"dataset": "Timely and Effective Care", "facilityId": "050002", "hospitalName": "ST ROSE HOSPITAL", "address": "27200 CALAROGA AVE", "city": "HAYWARD", "state": "CA", "zipCode": "94545", "county": "ALAMEDA", "phone": "(510) 782-6200", "measureId": "EDV", "measureName": "Emergency department volume", "condition": "Emergency Department", "startDate": "2024-01-01", "endDate": "2024-12-31", "scoreText": "medium", "scrapedAt": "2026-10-20T06:12:28.388Z"},{"dataset": "Complications and Deaths", "facilityId": "050002", "hospitalName": "ST ROSE HOSPITAL", "address": "27200 CALAROGA AVE", "city": "HAYWARD", "state": "CA", "zipCode": "94545", "county": "ALAMEDA", "phone": "(510) 782-6200", "measureId": "COMP_HIP_KNEE", "measureName": "Rate of complications for hip/knee replacement patients", "startDate": "2023-04-01", "endDate": "2025-03-31", "comparedToNational": "Not Available", "score": 4.6, "denominator": 97, "scrapedAt": "2026-10-20T06:12:28.388Z"}]
Limits
- 10,000 rows per run. The measure tables are large (on 20 October 2026: timely and effective care 138,084 rows, complications and deaths 95,800, healthcare associated infections 172,440, unplanned hospital visits 67,060, patient survey 325,720). Filter by state, hospital ID or measure, or run once per state.
- CMS can be slow. On the day we built this, the CMS service sometimes answered with a "Technical Difficulties" page or took 15 to 30 seconds for one request. The actor waits up to 40 seconds for each try and keeps trying one request for up to about 2.5 minutes (at most six tries, with growing pauses), so a run with many pages can take minutes on a bad day. If CMS does not answer at all, the run ends with an error that says so, and no rows are charged.
- Rate limit. We found no published request limit for this service. The actor reads 500 rows per request, one request at a time, at most five per second, with a User-Agent that names the actor.
- Reporting periods differ. Every measure has its own period.
startDateandendDategive it. A hospital may be missing a measure because it had too few cases, and then CMS gives a footnote code instead of a score. - Star ratings are CMS's. Some hospitals have no overall rating. The rating is read as published and is not recalculated.
ratingGroupsshows the measure counts CMS publishes behind it. - Star rating filter.
minOverallRatingis applied after the hospitals are read, so the run reads every hospital that matches your other filters and then drops the lower rated ones. Hospitals without a rating are dropped when you set it. - Name search.
hospitalNamematches a piece of the name, without regard to case. Hospitals appear under the name CMS holds, which can be a legal or campus name. - Not medical or legal advice. The rows are CMS statistics. They describe groups of patients over a period and do not rate any single doctor or treatment.
FAQ
What is the cheapest CMS hospital quality scraper on Apify? This actor costs $1 per 1,000 rows with platform usage included. The four most used CMS hospital quality actors on the Store charged $2.00 to $10.00 per 1,000 when we checked on 20 October 2026.
How much does it cost to scrape 10,000 hospital quality rows? $10, plus $0.001 for each run.
Do I pay for compute or proxy on top? No. Platform usage is included in the $1 per 1,000 price. No proxy is used.
Do I need an API key or a CMS account? No. The actor reads the public CMS Provider Data Catalog.
How do I find a hospital's CMS ID?
Run the hospital list with a state, city or name filter. Each row has facilityId, the six character CMS Certification Number. Use it in facilityIds to read that hospital in the measure tables.
How current is the data?
The actor reads the CMS tables at the moment you run it. CMS refreshes each table on its own schedule, so the reporting period of a row (startDate and endDate) tells you how recent it is.
Is it legal? The actor reads data that CMS publishes openly on its open data websites for anyone to use. It does not log in to anything. How you use the data is up to you: follow CMS's terms and the law where you live.
Is this an official CMS product? No. It is an independent tool and is not affiliated with or endorsed by the Centers for Medicare and Medicaid Services.
Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.
Is there a limit on the free plan? Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.
More from The One Dollar Store
Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store
Health and science
- NPI Provider Search: US healthcare providers from the NPI registry.
- PubMed Articles Scraper: Biomedical articles with abstracts and authors.
- ClinicalTrials.gov Scraper: Clinical studies by condition, drug or sponsor.
- Product Recalls Scraper: US consumer product recalls from the CPSC.
- Crossref Scraper: Scholarly works by DOI, title or author.
- EPA ECHO Scraper: US facility inspections and violations.
- NIH RePORTER Scraper: US NIH research grants and awards.
- USGS Earthquakes Scraper: Earthquake events with magnitude and place.
- FDA Recalls Scraper: US FDA enforcement reports and recalls.
- FDA 510(k) Scraper: Cleared medical devices with applicant and date.
Changelog
- October 2026: first release.