# New Healthcare Organization NPI Radar (`lukehunter/new-healthcare-organization-npi-radar`) Actor

Newly enumerated ORGANIZATION NPIs from CMS's weekly NPPES file, refreshed weekly: home health, hospice, behavioral health, DME, NEMT, clinics and more. Segmented by buyer taxonomy, new-org vs. new-location flagged. No individuals, no Authorized Official data, no key needed.

- **URL**: https://apify.com/lukehunter/new-healthcare-organization-npi-radar.md
- **Developed by:** [Luke Hunter](https://apify.com/lukehunter) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 new organizations

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## New Healthcare Organization NPI Radar

**For billing, credentialing, EHR and DME vendors who want to reach a healthcare organization the week it registers.** One run returns every new healthcare ORGANIZATION National Provider Identifier (NPI) as soon as CMS publishes it — home health agencies, hospices, behavioral health clinics, DME suppliers, non-emergency transport, labs and more.
Pay-per-result: **$0.01 per delivered organization — 100 leads = $1.00.**
Try it free with Apify's monthly platform credit.

This Actor reads CMS's own weekly NPPES incremental file (`download.cms.gov/nppes`, public, keyless, FOIA-disclosable data), keeps only newly enumerated **organizations** (Entity Type Code `"2"`), and turns them into a segmented lead list: what kind of healthcare organization just got its NPI, where it is, and whether it's a brand-new legal entity or a new practice location of one that already exists.

### Quick start (2 minutes)

1. Open the **Input** tab (no CMS account or key needed — the source is public).
2. Use this prefill for home health, hospice and behavioral health organizations from the last two weeks:

```json
{
  "sinceDays": 14,
  "segments": ["HOME_HEALTH", "HOSPICE", "BEHAVIORAL_HEALTH"],
  "includeSubparts": false,
  "maxItems": 200
}
```

3. Click **Start**. Export the lead list to CSV/JSON, or pull it via API into your CRM.

### Use cases

- **Billing and RCM vendors** reaching a healthcare organization in the same week it gets its NPI, before it's picked a billing partner.
- **Credentialing and EHR vendors** targeting new home health, hospice and behavioral health entities that need systems set up from day one.
- **DME suppliers and NEMT companies** finding newly enumerated organizations in their specific segment and service area.
- **Franchise and market researchers** tracking new-location vs. brand-new-entity growth for chains via `isNewLocationOfExistingOrg`.

### Run it weekly

NPPES only publishes the two newest weekly files, so this is built for a weekly cadence, not a backfill:

1. Set your `segments`/`states` filters, then click **Schedule** on the run page (or create one under **Schedules** in the Apify Console).
2. Run it weekly with `sinceDays: 14` so you never miss a week's file.
3. Keep `npi` as your dedupe key across runs — it's a stable, unique identifier, so a scheduled pull never double-charges or double-lists an organization you already have.

### New NPI numbers this week, newly registered healthcare providers list

If you've ever wanted a "new NPI numbers this week" feed or a "newly registered healthcare providers list" without downloading and parsing CMS's own multi-gigabyte file by hand, this is that list:

- **Newly enumerated organizations** from the last 1–14 days (NPPES only publishes the two newest weekly files, so that's the practical ceiling).
- **Segmented by buyer taxonomy**: home health, hospice, in-home supportive care, behavioral/mental health, DME, non-emergency medical transport, clinics, pharmacy, lab, or other.
- **New organization vs. new location flagged** (`isOrganizationSubpart` / `isNewLocationOfExistingOrg`) — an existing home-health chain opening its 40th branch reads differently than a brand-new agency.
- **Organizations only.** Individual (Type 1) NPIs and rows with a blank entity type are dropped outright — see **Privacy, by design** below.

### Example input

```json
{
  "sinceDays": 14,
  "segments": ["HOME_HEALTH", "HOSPICE", "BEHAVIORAL_HEALTH"],
  "includeSubparts": false,
  "maxItems": 200
}
```

### Example output

Real output rows from a capture of CMS's own weekly file on 2026-09-24 (Authorized Official and mailing-address fields are never read from the source file, so there is nothing to redact here — see below):

```json
{
  "npi": "1285545640",
  "organizationName": "AUTISM DIAGNOSTICS LAB INC",
  "otherOrganizationName": null,
  "enumerationDate": "2026-09-15",
  "practiceAddress1": "3805 E BELL RD STE 4100",
  "practiceAddress2": null,
  "practiceCity": "PHOENIX",
  "practiceState": "AZ",
  "practiceZip": "850322172",
  "practicePhone": "8886500199",
  "primaryTaxonomyCode": "291U00000X",
  "taxonomyCodes": ["291U00000X"],
  "isOrganizationSubpart": false,
  "parentOrganizationLbn": null,
  "segment": "LAB",
  "isNewLocationOfExistingOrg": false,
  "daysSinceEnumeration": 9,
  "sourceFile": "NPPES_Data_Dissemination_091426_092026_Weekly_V2.zip",
  "npiRegistryUrl": "https://npiregistry.cms.hhs.gov/provider-view/1285545640"
}
```

No field above is invented. (The full schema has 19 fields; see **Output fields** below.)

| Field | Value |
|---|---|
| `npi` | `1285545640` |
| `organizationName` | `AUTISM DIAGNOSTICS LAB INC` |
| `enumerationDate` | `2026-09-15` |
| `practiceCity` / `practiceState` | `PHOENIX`, `AZ` |
| `primaryTaxonomyCode` | `291U00000X` |
| `segment` | `LAB` |
| `isNewLocationOfExistingOrg` | `false` |
| `daysSinceEnumeration` | `9` |

### Privacy, by design — organizations only, fail-closed

This Actor is built to return B2B leads, not personal data:

1. **Only Entity Type Code exactly `"2"` (organizations) is kept.** Entity Type `"1"` (individual providers, including sole practitioners) and rows with a **blank** entity type — NPPES leaves this blank for some deactivated/legacy records — are dropped, not guessed at. This is fail-closed: anything that isn't unambiguously an organization is excluded.
2. **Authorized Official name, title and phone are never read from the source file at all** — the parser's required-column list doesn't include them, so there is no code path that could leak them, not just a filter that could fail open.
3. **The organization's mailing address is never read either** — only the practice/service location address is, which is the address a vendor actually needs to reach the business.
4. A type-2 organization's legal name can still be a solo practitioner's PLLC. That is a business entity under NPPES's own rules and is kept; NPPES itself, not this Actor, decides who registers as an organization.

NPPES data is disclosable under the Freedom of Information Act (FOIA); CMS's own Data Dissemination notice states there is no charge to download it and no way for a provider to opt out of the FOIA-disclosable fields of an active NPI. This Actor reads only what that notice already makes public, and narrows it further before delivery.

### Input

| Field | Default | Meaning |
|---|---:|---|
| `sinceDays` | 14 | Organizations enumerated in the last 1–14 days (NPPES lists only the two newest weekly files) |
| `segments` | all | Any of `HOME_HEALTH`, `HOSPICE`, `IN_HOME_SUPPORTIVE_CARE`, `BEHAVIORAL_HEALTH`, `DME`, `NEMT`, `CLINIC`, `PHARMACY`, `LAB`, `OTHER` |
| `taxonomyCodes` | `[]` (all) | Exact 10-character NUCC taxonomy codes (e.g. `251E00000X`). Combined with `segments` as an OR |
| `states` | `[]` (all) | Two-letter practice-location state/territory codes (e.g. `TX`, `PR`) |
| `includeSubparts` | true | Off returns brand-new legal entities only, excluding new locations of an already-enumerated organization |
| `maxItems` | 500 | Hard cap on organizations delivered and charged this run, newest-enumerated first |

### Output fields

| Field | Meaning |
|---|---|
| `npi` | The 10-digit National Provider Identifier |
| `organizationName`, `otherOrganizationName` | Legal business name and any other listed trade name |
| `enumerationDate` | The date CMS assigned this NPI |
| `practiceAddress1`, `practiceAddress2`, `practiceCity`, `practiceState`, `practiceZip`, `practicePhone` | The organization's **practice/service location**, never its mailing address |
| `primaryTaxonomyCode`, `taxonomyCodes` | NUCC taxonomy code(s); `primaryTaxonomyCode` is the one flagged primary, or the first listed |
| `isOrganizationSubpart`, `parentOrganizationLbn` | Whether NPPES marked this as a subpart (new location), and its parent organization's name when so marked |
| `segment` | Derived buyer segment from `primaryTaxonomyCode` — see the input table |
| `isNewLocationOfExistingOrg` | Derived: `true` when `isOrganizationSubpart` is `true` |
| `daysSinceEnumeration` | Derived: days between `enumerationDate` and when this run fetched it |
| `sourceFile` | Which CMS weekly file this row came from |
| `npiRegistryUrl` | Direct link to the free public NPI Registry record for verification |

### Limitations — read before you build automation on this

- **Lookback is capped at 14 days**, because CMS's listing page only ever links the two newest weekly files. There is no way to backfill further from this source; schedule the Actor weekly and store results yourself for a longer history (`npi` is a stable key).
- **Weekly cadence.** New organizations are picked up once a week, when CMS publishes the next incremental file, not the moment they register.
- **A "new location" (subpart) is not a new company.** `isOrganizationSubpart: true` means an already-enumerated organization opened another practice location — a real lead for site-specific vendors (linen, waste, POS terminals), a weaker one for corporate/HQ-level sales. Turn off `includeSubparts` to see only brand-new legal entities.
- **`segment` is taxonomy-derived, not a CMS field.** An organization with an unusual or missing primary taxonomy lands in `OTHER`; on the newest captured file that was about 52% of new organizations (mostly ambulance services, DME suppliers under narrower codes, and other specialties this Actor doesn't yet map — check `primaryTaxonomyCode` directly if `OTHER` volume matters to you).
- **Entity Type is exact-match fail-closed.** A handful of rows NPPES leaves with a blank entity type (deactivated/legacy records) are dropped rather than guessed at; this slightly undercounts rather than ever risks including an individual.
- **This is not the NPI Registry lookup API.** It doesn't search by name or existing NPI — it only surfaces NPIs newly enumerated in the lookback window. Use `npiRegistryUrl` to look up any specific record.

### Pricing and cost control

Pay-per-event: **$0.01 per delivered new organization.** Benchmarked against the closest live comparables on the Apify Store: `lead.gen.labs/npi-new-provider-weekly-monitor` ($0.019/event, prefill-only, no real users), `fixmyerrorcode`'s weekly NPI feed ($9/state to $29/national edition), and `sourabhbgp/npi-registry-scraper` ($0.002, a name/NPI lookup tool rather than a new-organization trigger, but the cluster's only Actor with real usage). $0.01 sits below the direct trigger competitors because both existing "new NPI" Actors are prefill-only with no verified customers, and this Actor adds segmentation and new-location classification that neither does.

- `maxItems` is a hard cap on both delivered rows and total charge for the run.
- Delivered rows always equal charged rows: if your run's "Maximum cost per run" budget runs out mid-run, the Actor stops, finishes `SUCCEEDED`, and its status message says exactly how many organizations were delivered and that only those were charged — never a silent under-charge or a failed run.
- If the Actor is not monetized (e.g. running it yourself), every matching organization is delivered free.
- A restarted run never re-delivers (or re-charges for) an organization it already delivered.

### FAQ

**Do I need a CMS account or API key?** No. `download.cms.gov/nppes` is public and keyless.

**Can I get individual providers (doctors, nurses) too?** No, by design. This Actor only ever reads and delivers Entity Type `"2"` (organization) rows — see **Privacy, by design**.

**Why is `segment` sometimes `OTHER`?** Its primary taxonomy code doesn't match one of the buyer segments this Actor maps (see **Limitations**). Filter or inspect by `taxonomyCodes` directly if you need a specific specialty this Actor doesn't segment yet.

**Can I get more than 14 days of history?** Not from this source — CMS's listing page only lists the two newest weekly files. Run this Actor on a weekly schedule and store the results yourself for a longer history.

**What if CMS changes the file format?** The Actor checks every required column on every run and fails loudly (not silently) if one goes missing, rather than emit wrong or empty data.

**Is this data legally usable?** NPPES health care provider data is disclosable under the Freedom of Information Act, and CMS's own Data Dissemination notice confirms there is no charge to download it and no opt-out for FOIA-disclosable fields of an active NPI. This Actor reads only public, FOIA-disclosable columns.

### Related Actors

Other data tools from the same developer, built to the same standard: official or public sources, hard cost caps, and honest documentation of limits.

- **[Hospital Price Transparency Enforcement Leads](https://apify.com/lukehunter/hospital-price-transparency-enforcement-leads)**: hospitals with recent CMS price transparency warning notices, CAP requests and CMP notices.
- **[Hospital Ownership Change Radar](https://apify.com/lukehunter/hospital-chow-radar)**: hospitals that just changed owner, with buyer, seller and effective date from CMS filings.
- **[Federal Register Rule Effective-Date Radar](https://apify.com/lukehunter/federal-rule-effective-date-radar)**: final federal rules about to take effect, with citations, dockets and urgency.
- **[Chicago Contract Recompete & Extension Radar](https://apify.com/lukehunter/chicago-contract-expiration-radar)**: expiring City of Chicago contracts with extension history, for recompete prospecting.
- **[Bank Branch Closings & Merger Radar (FDIC)](https://apify.com/lukehunter/bank-branch-merger-radar)**: new US bank branch closings, openings and mergers from the FDIC.
- **[Chicago New Business License Radar](https://apify.com/lukehunter/chicago-new-business-license-radar)**: newly licensed Chicago businesses as opening leads, grouped by category.
- **[NYC FDNY Contractor Leads & Hearing Radar](https://apify.com/lukehunter/fdny-violation-radar)**: fresh NYC fire-code summonses routed by remediation trade, with hearing dates.
- **[RCRA Enforcement Response Leads](https://apify.com/lukehunter/rcra-enforcement-radar)**: new EPA hazardous-waste (RCRA) enforcement actions and penalties, by state.
- **[Emerging Federal Contractor Radar](https://apify.com/lukehunter/emerging-federal-contractor-radar)**: companies that just won their first federal contracts, from USAspending.gov.
- **[County Multifamily Building Permits Surge Radar](https://apify.com/lukehunter/county-multifamily-permit-surge-radar)**: U.S. counties where 5+ unit apartment permits are surging year over year.
- **[Zillow ZIP Code Property Search Scraper](https://apify.com/lukehunter/zillow-zip-scraper)**: for-sale listings by ZIP code with prices, price cuts and days on Zillow.
- **[Walmart Category Scraper](https://apify.com/lukehunter/walmart-category-scraper)**: product names, prices, was-prices and ratings from Walmart category pages.

# Actor input Schema

## `sinceDays` (type: `integer`):

Return organizations CMS enumerated in this many days (1-14). NPPES publishes only the two newest weekly files, so a longer lookback is not possible.

## `segments` (type: `array`):

Only organizations whose primary taxonomy maps to these buyer segments. Leave empty for all. Combined with 'Taxonomy codes' as an OR - either match is kept.

## `taxonomyCodes` (type: `array`):

Only organizations whose primary NUCC taxonomy code is one of these 10-character codes (e.g. 251E00000X). Leave empty for all. Combined with 'Segments' as an OR.

## `states` (type: `array`):

Only organizations whose practice-location state is one of these two-letter codes (e.g. TX, PR). Leave empty for all states and territories.

## `includeSubparts` (type: `boolean`):

NPPES marks an NPI as a subpart when it is a new practice location of an already-enumerated parent organization rather than a brand-new legal entity. Off returns brand-new organizations only.

## `maxItems` (type: `integer`):

Hard cap on organizations delivered (and charged) per run, 1-10000, default 500. Newest enumeration date first.

## Actor input object example

```json
{
  "sinceDays": 14,
  "segments": [],
  "taxonomyCodes": [],
  "states": [],
  "includeSubparts": true,
  "maxItems": 20
}
```

# Actor output Schema

## `dataset` (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 = {
    "sinceDays": 14,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("lukehunter/new-healthcare-organization-npi-radar").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 = {
    "sinceDays": 14,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("lukehunter/new-healthcare-organization-npi-radar").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 '{
  "sinceDays": 14,
  "maxItems": 20
}' |
apify call lukehunter/new-healthcare-organization-npi-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lukehunter/new-healthcare-organization-npi-radar"
        }
    }
}
```

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/Ut2e5HANf1VW7uuft/builds/CiswwMt8U6i3ftH3A/openapi.json
