# Medicare Account Change Feed (`dyalaalsharif/medicare-revalidation-change-feed`) Actor

Verified September 2026 CMS Medicare enrollment and revalidation change feed with 5,115 organization-level records. Includes NPI, specialty, due-date, provider type, and reassignment context. Independent product; not affiliated with CMS or HHS.

- **URL**: https://apify.com/dyalaalsharif/medicare-revalidation-change-feed.md
- **Developed by:** [Dyala Alsharif](https://apify.com/dyalaalsharif) (community)
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 medicare account changes

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Medicare Account Change Feed

**Medicare Account Change Feed** tracks verified **CMS Medicare enrollment and revalidation changes** between monthly public datasets.

Instead of manually comparing large Medicare enrollment files, credentialing, provider-network, revenue-cycle, healthcare-data, and research teams can retrieve organization-level changes enriched with **NPI, Medicare Enrollment ID, specialty, due-date, and provider-reassignment context** in a structured dataset.

**Current edition:** September 2026 verified inventory\
**Available records:** 5,115 verified account changes\
**Detected event:** `NEW_UPCOMING_DATE_SURFACED`\
**Price:** $0.005 per returned account change ($5 per 1,000)

### Quick start

Choose the starting record and the number of results in **Input**, then run the Actor.

The September 2026 inventory contains **5,115 verified account changes**.

A single run can return up to **1,000 records**. Use `startFrom` to retrieve additional batches from the inventory.

Results are returned as a structured dataset ready for review, export, or API use.

### What does this Actor detect?

The current edition focuses on one verified event:

**`NEW_UPCOMING_DATE_SURFACED`**

This means the Medicare Enrollment ID had no populated revalidation due date in the August 2026 CMS snapshot and shows an upcoming revalidation due date of:

**February 28, 2027**

in the September 2026 CMS snapshot.

The event was verified at the **Medicare Enrollment ID level** against the August and September source snapshots.

The Actor does not claim that an organization needs a vendor, is actively shopping for credentialing services, or intends to purchase anything.

It reports a documented change in public Medicare enrollment data.

### What information is included?

Each returned account change can contain:

- Organization name
- State
- Medicare Enrollment ID
- Detected event
- Detection month
- Previous due-date status
- Current due date
- Provider type
- Number of NPIs associated with the due enrollment
- Enrollment specialties
- Reassignment relationship count
- Unique reassignment NPIs
- Unique reassignment enrollments
- Reassignment specialty count
- CMS group reassignment count
- Multi-employer relationship count
- Maximum employer associations
- Evidence describing the compared CMS datasets
- Source and interpretation notes

Reassignment fields may legitimately be zero for provider types or enrollments without matching records in the CMS reassignment dataset.

### Input

#### Start from record

Choose where in the verified inventory to begin.

Current range:

**1 to 5,115**

Example:

```json
{
  "startFrom": 1001,
  "maxResults": 1000
}
```

This requests records **1,001 through 2,000**, subject to the Actor's maximum charge limit.

#### Number of results

Choose how many verified account changes to return in the current run.

Current range:

**1 to 1,000**

Examples:

- `startFrom: 1`, `maxResults: 5` → records 1–5
- `startFrom: 1`, `maxResults: 100` → records 1–100
- `startFrom: 1001`, `maxResults: 1000` → records 1,001–2,000
- `startFrom: 5001`, `maxResults: 1000` → returns the remaining available records through 5,115

The per-run maximum is intentionally limited to **1,000 results**. The full inventory remains accessible using multiple `startFrom` ranges.

### Example output

```json
{
  "success": true,
  "product": "Medicare Account Change Feed",
  "edition": "September 2026 verified inventory",
  "target_event": "Blank -> 2027-02-28",
  "account_change_number": 1,
  "account": "Lehigh Valley Physician Group",
  "state": "PA",
  "medicare_enrollment_id": "O20040227000335",
  "event": "NEW_UPCOMING_DATE_SURFACED",
  "detected_in": "September 2026",
  "previous_due_date": "BLANK / NONE",
  "current_due_date": "2027-02-28",
  "provider_type": "Non-DME Part B",
  "due_enrollment_npis": 217,
  "due_enrollment_specialties": [
    "Clinic/Group Practice"
  ],
  "reassignment_relationships": 2855,
  "reassignment_unique_npis": 2854,
  "reassignment_unique_enrollments": 2855,
  "reassignment_specialty_count": 66,
  "cms_group_reassignment_counts": [
    "2855"
  ],
  "multi_employer_relationship_rows": 1638,
  "max_employer_associations": 18,
  "evidence": "CMS Aug 2026 -> Sep 2026 Due Date List + Sep 2026 Reassignment List",
  "source": "Derived from publicly available CMS data.",
  "guardrail": "Public CMS enrollment-change intelligence only. Inclusion does not mean an organization needs a vendor or intends to buy."
}
```

### Pricing

This Actor uses **Pay Per Event** pricing.

Each returned **Medicare Account Change** costs:

**$0.005 per account change**

Examples:

- 100 results = $0.50
- 5 results = $0.50
- 10 results = $1.00
- 100 results = $10.00
- 1,000 results = $5.00

A run may stop early if the configured maximum charge limit is reached.

Platform usage is currently included in the Actor pricing.

### Data sources and methodology

The current edition is derived from publicly available Medicare enrollment datasets published by the U.S. Centers for Medicare & Medicaid Services (CMS).

The September 2026 inventory was generated by comparing the August 2026 and September 2026 CMS snapshots.

For the current event:

1. September records with a revalidation due date of `2027-02-28` were identified.
2. Records were grouped by Medicare Enrollment ID.
3. Each candidate Medicare Enrollment ID was checked against the August 2026 snapshot.
4. Candidates that already had a populated August revalidation due date were rejected from this event.
5. Candidates with no populated August revalidation due date were retained as verified `NEW_UPCOMING_DATE_SURFACED` events.
6. Verified records were enriched with September CMS reassignment data where applicable.

The final September 2026 inventory contains:

**5,115 verified Medicare Enrollment IDs**

for the event:

**Blank / no populated August due date → February 28, 2027 in September**

The Actor validates the expected inventory size before serving records.

### Important interpretation notes

`due_enrollment_npis` and `reassignment_unique_npis` measure different scopes and should not be treated as interchangeable.

Some provider types may legitimately have zero reassignment relationships.

Reassignment counts describe relationships present in the relevant public CMS reassignment dataset and should not be interpreted as a complete measure of an organization's workforce, network, or commercial activity.

A surfaced Medicare revalidation date does not establish that an organization needs outside assistance or intends to hire a credentialing, enrollment, consulting, revenue-cycle, or other vendor.

This product is **not** a sales score, purchase-intent score, recommendation, or prediction of commercial opportunity.

Users should independently evaluate how the information applies to their own workflow.

### Potential use cases

The feed can support workflows such as:

- Medicare enrollment monitoring
- Credentialing and revalidation research
- Provider-network research
- Revenue-cycle market intelligence
- Organization-level Medicare account monitoring
- Internal business-development research
- Public healthcare-data analysis
- Monthly change detection and account monitoring
- Healthcare data enrichment workflows

### Current edition limitations

The current product is a **verified September 2026 inventory**, not a real-time CMS feed.

Running the Actor does not trigger a fresh nationwide CMS comparison.

The current edition contains one event type:

`NEW_UPCOMING_DATE_SURFACED`

and one verified transition:

`BLANK / NONE -> 2027-02-28`

The current inventory contains **5,115 records** and supports retrieval in batches of up to **1,000 records per run**.

Future editions may add:

- Additional monthly snapshots
- Additional revalidation dates
- Additional change-event types
- More filters
- Historical change tracking
- Recurring Medicare account monitoring

### Independence and disclaimer

This is an independent data product.

It is **not affiliated with, endorsed by, sponsored by, certified by, or operated by CMS or the U.S. Department of Health and Human Services (HHS).**

Results are derived from publicly available CMS data and may reflect limitations, corrections, delays, or changes present in the source datasets.

Users are responsible for independently verifying information before making operational, commercial, compliance, or business decisions.

# Actor input Schema

## `startFrom` (type: `integer`):

Enter a record number from 1 to 5115. Use 1 to start from the beginning. Example: entering 1001 starts with account change #1001.

## `maxResults` (type: `integer`):

Choose how many verified account changes to return in this run, from 1 to 1000. Each returned result costs $0.005. Example: start at 1001 and request 1000 results to receive records 1001 through 2000.

## Actor input object example

```json
{
  "startFrom": 1,
  "maxResults": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("dyalaalsharif/medicare-revalidation-change-feed").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("dyalaalsharif/medicare-revalidation-change-feed").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call dyalaalsharif/medicare-revalidation-change-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dyalaalsharif/medicare-revalidation-change-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/sbVjP2aqL4qKGyvj7/builds/aT7OPC6ey149BwDFz/openapi.json
