Medicare Revalidation Due Date List (CMS) Scraper
Pricing
$2.00 / 1,000 revalidation leads
Medicare Revalidation Due Date List (CMS) Scraper
Medicare revalidation due date list from CMS, filtered to enrollments due inside a date window you choose: enrollment ID, NPI, name, state, specialty, provider type, due date and days until due. Narrow by state, specialty, provider type or name. Monthly CMS refresh. $0.002/record.
Pricing
$2.00 / 1,000 revalidation leads
Rating
0.0
(0)
Developer
JS Tech Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Pulls the CMS Medicare Revalidation Due Date List and narrows it to the enrollments whose revalidation falls inside a date window you choose, soonest due first, as clean JSON records: enrollment ID, NPI, provider or legal business name, state, specialty, provider type, due date and days until due. Filter by state, specialty, provider type and name.
Every provider and supplier enrolled in Medicare has to revalidate, and CMS publishes the due dates. The published list is 2.93 million enrollment rows, most of them marked "not yet assigned", which makes the useful part, who is due and when, hard to get at. On the August 2026 file: 2,931,409 enrollments in the dataset, 270,992 with a due date on them, 20,945 of those falling in the next 90 days. That last number is the list.
Who uses this data
- Credentialing and provider enrollment vendors. A revalidation due in 90 days is a dated, qualified need with a deadline attached. Pull the window, filter to your states, work the list.
- RCM and medical billing companies. A missed revalidation deactivates the enrollment and stops payment. Providers approaching a due date are the ones most receptive to a conversation about it.
- MSOs and practice-management groups watching the due dates across an owned or affiliated portfolio, by state and specialty.
- Healthcare compliance teams confirming that every enrollment they hold has its revalidation on the calendar.
- Health-data teams joining revalidation timing onto NPI-keyed data they already hold.
What you get
One dataset item per enrollment, soonest due first.
{"source": "https://data.cms.gov/data-api/v1/dataset/3746498e-874d-45d8-9c69-68603cafea60/data","landingPage": "https://data.cms.gov/provider-characteristics/medicare-provider-supplier-enrollment/revalidation-due-date-list","attribution": "Centers for Medicare & Medicaid Services (CMS)","fetchedAt": "2026-08-23T11:45:12.801Z","enrollmentId": "O20030131000002","npi": "1073506911","providerName": "Hidalgo Medical Services","firstName": null,"lastName": null,"organizationName": "Hidalgo Medical Services","isOrganization": true,"state": "NM","enrollmentType": "1","enrollmentTypeText": "Part A","providerType": "Part A","specialty": "Federally Qualified Health Center (Fqhc)","revalidationDueDate": "2026-08-31","adjustedDueDate": null,"daysUntilDue": 8,"individualTotalReassignTo": null,"receivingBenefitsReassignment": null}
providerName is the legal business name for an organization and the person's name for an individual, so one column works for both. daysUntilDue counts whole days from the run date (UTC) and goes negative for an enrollment already past due. individualTotalReassignTo counts the individual enrollments reassigning benefits to an organization, and receivingBenefitsReassignment counts the organizations an individual reassigns to; both are useful as a size signal on a group practice.
Dates are ISO 8601 calendar dates. Missing values are null, never an empty string. Records are deduplicated on enrollment ID together with NPI: one enrollment ID can legitimately cover many NPIs, so the pair is the key.
Input
Everything is optional. Run it with no input and you get the 100 enrollments due to revalidate soonest within the next 90 days, nationwide.
| Field | Type | Default | Notes |
|---|---|---|---|
dueWithinDays | integer | 90 | Window length from today (UTC). Naming either endpoint below switches this off entirely. |
dueFrom | YYYY-MM-DD | today (UTC) | Start of the window. Set a past date to pull overdue enrollments. Set on its own, the window has no end. |
dueTo | YYYY-MM-DD | today + dueWithinDays | End of the window. Set on its own, the window has no start. |
states | string[] | all | Two-letter enrollment state codes, e.g. ["NY","NJ","CT"]. |
specialty | string | - | Case-insensitive substring on the enrollment specialty, e.g. Cardio, Pharmacy, Hospice. |
providerType | enum | any | Part A, Non-DME Part B, or DME. |
nameKeyword | string | - | Case-insensitive substring on organization, first and last name. Applied after fetching, so it reads up to 10 pages looking for matches. |
maxResults | integer | 100 | 1 to 50000. This is your cost cap: you pay per delivered record. |
includeRaw | boolean | false | Attach a raw object with the API row under its published column names. |
The due-date window is always in force. CMS leaves the due date blank on enrollments it has not scheduled yet (its documentation calls these "TBD"), and an enrollment with no date is not a dated lead, so those rows are never delivered. Every request carries a "has a due date" filter, so they are excluded at the API rather than fetched and thrown away.
dueWithinDays is a shorthand for "today until N days from today". Naming dueFrom or dueTo switches it off completely rather than letting it supply the other end, so dueFrom: "2026-12-01" means from that date onwards, not from that date for 90 days. One-sided windows are as cheap as two-sided ones.
Example inputs
Everything due in the next 90 days in your states (enrollment vendor lead list):
{"dueWithinDays": 90,"states": ["NY", "NJ", "CT"],"maxResults": 2000}
DME suppliers due in a specific month (billing-company prospecting by provider type):
{"dueFrom": "2026-11-01","dueTo": "2026-11-30","providerType": "DME","maxResults": 1000}
Check one organization's revalidation date (compliance, paired with a state to keep the scan small):
{"dueFrom": "2026-01-01","states": ["NM"],"nameKeyword": "Hidalgo Medical","maxResults": 10}
Pricing
$0.002 per record; you pay only for records delivered. One charge per dataset item, nothing else. Set maxResults and you have set your bill: 1,000 records is $2.00. Filters are applied before delivery, so a narrow search costs less than a broad one, and a window that matches nothing costs nothing.
Data source, refresh and licence
Data comes from the Centers for Medicare & Medicaid Services (CMS) Revalidation Due Date List, read through the public data.cms.gov API:
- Dataset: Revalidation Due Date List
- API endpoint:
https://data.cms.gov/data-api/v1/dataset/3746498e-874d-45d8-9c69-68603cafea60/data - Field definitions: Revalidation Due Date List Data Dictionary
Refresh: CMS publishes this dataset monthly (accrualPeriodicity: R/P1M in its catalog entry). The August 2026 file was last modified 2026-08-05. Each run reads live and reports the dataset's row count in the run summary under the OUTPUT key, so scheduling the Actor monthly tracks the source's own cadence.
Licence: CMS's own data.json catalog entry for this dataset gives its licence as https://www.usa.gov/government-works and its access rights as Open.
Attribution: Centers for Medicare & Medicaid Services (CMS). This Actor is not affiliated with or endorsed by the Centers for Medicare & Medicaid Services, and nothing here should be read as a CMS endorsement of it.
https://data.cms.gov/robots.txt advertises crawl-delay: 10 and does not disallow /data-api/v1/dataset/. The Actor honours the 10 second delay between requests, sends a descriptive User-Agent, opens no parallel connections, and caches nothing between runs. A default run makes two requests.
Limitations
- Only about 9% of enrollments carry a due date. CMS publishes roughly the coming six months of due dates and leaves the rest blank; 270,992 of 2,931,409 rows had a date on 2026-08-23. Those blank rows are excluded, by design.
- The forward-looking list is organizational. In the August 2026 file, dated enrollments from today onward are organizations: clinics and group practices, pharmacies, FQHCs, hospices, DME suppliers, ambulance services. The 10,744 individual practitioner rows that carry a date are all in 2023. A past window (
dueFrom: "2023-01-01") reaches them; a forward one will not until CMS assigns new individual dates. - No contact details. CMS does not publish an address, phone number or email in this dataset, and this Actor does not invent or enrich them. Join on
npiagainst NPPES if you need contact information. - No per-record deep link. The dataset has no public per-enrollment page, so items link to the dataset landing page rather than to a record.
- The window follows
revalidationDueDateonly. That is the one date column the CMS API can filter on, so following anything else would mean the server and this Actor disagreed about which rows belong in the window.adjustedDueDateis blank on every row of the current file; it is delivered as published, and if CMS starts populating it the run summary says so underrowsWithAnAdjustedDueDate. stateis the enrollment's state, not necessarily the provider's mailing address, and one provider can hold enrollments in several states.- A name search reads pages, not an index. The API cannot match a keyword across three name columns at once, so
nameKeywordis applied after fetching. Such a run reads at most 10 pages (about two minutes), reportspageBudgetReachedif it stops there with partial results, and fails outright rather than billing you if 10 pages produce no match at all. PairnameKeywordwith a state or a narrow window. - Dates are UTC. "Today", the window edges and
daysUntilDueare all computed on the UTC calendar day, so a run started late in the evening west of Greenwich uses the next UTC date. SetdueFromexplicitly if that matters to you.
FAQ
How do I look up a Medicare revalidation due date?
Run with nameKeyword (or inspect npi in the output) together with a state and a window that starts in the past, for example dueFrom: "2023-01-01", so the scan stays small. If the enrollment has no published date yet, CMS lists it as TBD and it will not appear; check again after the next monthly release.
Why are most Medicare enrollments missing from the list?
CMS assigns due dates roughly six months ahead and leaves the rest blank ("TBD"). Only 270,992 of 2,931,409 rows carried a date on 2026-08-23, and this Actor delivers dated rows only.
What happens if a provider misses Medicare revalidation?
CMS deactivates the enrollment and payment stops until it is reinstated, which is why enrollment and billing vendors work the due-date list ahead of time.
Can I get revalidation due dates by state or specialty?
Yes. states and specialty are applied on top of the date window. providerType narrows to Part A, Non-DME Part B or DME.
Does the list include individual physicians?
Only when CMS has assigned them a date. In the August 2026 file every forward-dated enrollment is an organization; the 10,744 dated individual rows all fall in 2023 and are reachable with a past window.
How often is the CMS revalidation due date list updated?
Monthly. The August 2026 file was last modified 2026-08-05.
Related datasets
Other datasets by the same author, all pay-per-record with source, refresh cadence and licence stated on each listing:
Nursing home and long-term care data
- Nursing Home Deficiency Citations (CMS) Scraper
- Nursing Home Fines & Civil Money Penalties (CMS) Scraper
- Nursing Home Directory & Ownership (CMS Form 671) Scraper
- Nursing Home Daily Nurse Staffing (CMS PBJ) Scraper
- Nursing Home Change of Ownership (CMS SNF CHOW) Scraper
- New York Nursing Home Bed Availability (NYSDOH) Scraper
Medicare provider enrollment data
- Medicare Revoked Providers List (CMS Revocations) Scraper
- Medicare Opt-Out Providers List (CMS Affidavits) Scraper
Public procurement and RFP feeds
- E-Rate Form 470 RFP Scraper (USAC School & Library Bids)
- NYC PASSPort Procurement Scraper (RFPs, Bids & Contracts)
Developer and AI test data