VOOZH about

URL: https://apify.com/automation-lab/npi-registry-provider-scraper

โ‡ฑ NPI Registry Provider Scraper | CMS Provider Data API ยท Apify


Pricing

Pay per event

Go to Apify Store

NPI Registry Provider Scraper

Search the public CMS NPI Registry and export provider contact details, specialties, taxonomy codes, addresses, credentials, and NPI metadata.

Pricing

Pay per event

Rating

0.0

(0)

Developer

๐Ÿ‘ Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search the public CMS NPI Registry and export provider records with contact details, taxonomy/specialty data, addresses, credentials, and source metadata.

Use this actor when you need a clean provider list for healthcare operations, credentialing, lead enrichment, market mapping, or compliance research.

What does NPI Registry Provider Scraper do?

  • ๐Ÿ”Ž Searches the CMS NPI Registry public API.
  • ๐Ÿฅ Exports one dataset row per provider record.
  • ๐Ÿ“ Includes mailing and practice-location address fields.
  • โ˜Ž๏ธ Captures phone and fax values when the registry provides them.
  • ๐Ÿงพ Includes taxonomies, primary license, status, and dates.
  • ๐Ÿง‘โ€โš•๏ธ Handles individual providers and organizations.
  • ๐Ÿงฉ Supports batch searches and exact NPI lookups.

Who is it for?

  • Healthcare operations teams building provider directories.
  • Credentialing teams checking NPI status and specialty data.
  • Sales and marketing teams researching healthcare provider leads.
  • Data enrichment teams matching provider CRM records.
  • Recruiters mapping physicians, clinics, facilities, and specialties.
  • Analysts studying provider density by city, state, ZIP, or taxonomy.

Why use this actor?

The CMS NPI Registry is public, but raw API output is nested and inconvenient for spreadsheet workflows. This actor turns registry responses into flat, export-friendly rows while preserving nested details as JSON fields. It also handles pagination, batching, deduplication, and metadata so your team can focus on analysis.

How much does it cost to scrape NPI Registry providers?

This actor uses pay-per-event pricing. There is a small start charge per run and a per-provider charge for each saved NPI record. Use a low maxResults value for first tests, then increase it for production exports. Final tiered pricing is validated during cloud cost testing before publication.

Input options

  • mode: choose search or lookup.
  • maxResults: total provider records to save.
  • searches: optional batch of search filter objects.
  • npiNumbers: exact NPI values for lookup mode.
  • firstName and lastName: individual provider filters.
  • organizationName: facility, clinic, practice, or company name.
  • taxonomyDescription: specialty text such as Cardiology or Dentist.
  • city, state, postalCode, countryCode: location filters.
  • enumerationType: individual providers (NPI-1) or organizations (NPI-2).
  • useFirstNameAlias: include common first-name aliases supported by CMS.

Example search input

{
"mode":"search",
"maxResults":50,
"state":"MA",
"city":"Boston",
"taxonomyDescription":"Cardiology"
}

Example batch input

{
"mode":"search",
"maxResults":100,
"searches":[
{"state":"MA","city":"Boston","taxonomyDescription":"Cardiology"},
{"state":"NY","city":"New York","taxonomyDescription":"Family Medicine"}
]
}

Example lookup input

{
"mode":"lookup",
"maxResults":10,
"npiNumbers":["1730958521"]
}

Output data

The dataset contains provider identity, contact, taxonomy, and metadata fields.

FieldDescription
npiNational Provider Identifier.
providerNameIndividual or organization display name.
providerTypeIndividual, organization, or unknown.
statusRegistry status value.
locationPhonePractice-location phone when available.
primaryTaxonomyDescriptionMain specialty description.
primaryTaxonomyCodeMain taxonomy code.
primaryLicenseNumberLicense attached to primary taxonomy.
taxonomyDescriptionsSemicolon-separated specialty descriptions.
identifiersJsonAdditional identifiers as JSON.
endpointsJsonRegistry endpoint data as JSON.
practiceLocationsJsonAdditional practice locations as JSON.
sourceApiUrlExact CMS API URL used.
fetchedAtActor fetch timestamp.

Output example

{
"npi":"1730958521",
"providerName":"SARAH MARGARET BEARGIE PharmD",
"providerType":"individual",
"locationCity":"BOSTON",
"locationState":"MA",
"locationPhone":"617-724-1939",
"primaryTaxonomyDescription":"Pharmacist"
}

Tips for best results

  • Start with a city, state, and specialty to keep searches targeted.
  • Use enumerationType when you only want individuals or organizations.
  • Use batch searches for territory lists or specialty lists.
  • Keep the first run small to inspect output columns.
  • Increase maxResults after you confirm the search filters are correct.
  • Use exact npiNumbers for enrichment or verification workflows.

Pagination and limits

The actor requests pages from the CMS API and stops when it reaches maxResults or no more records are returned. The CMS API has practical pagination limits, so very broad searches should be split by city, state, specialty, or ZIP code. Targeted searches produce cleaner and more useful provider lists.

Integrations

  • Export to CSV for spreadsheet review.
  • Send records to a CRM enrichment pipeline.
  • Join by npi with internal provider records.
  • Use taxonomyCodes to segment specialties.
  • Use locationState and locationPostalCode for territory mapping.
  • Use sourceApiUrl as an audit trail for compliance review.

API usage with Node.js

import{ ApifyClient }from'apify-client';
const client =newApifyClient({token: process.env.APIFY_TOKEN});
const run =await client.actor('automation-lab/npi-registry-provider-scraper').call({
mode:'search',
maxResults:50,
state:'MA',
city:'Boston',
taxonomyDescription:'Cardiology'
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient()
run = client.actor('automation-lab/npi-registry-provider-scraper').call(run_input={
'mode':'search',
'maxResults':50,
'state':'MA',
'city':'Boston',
'taxonomyDescription':'Cardiology',
})
print(run['defaultDatasetId'])

API usage with cURL

curl-X POST 'https://api.apify.com/v2/acts/automation-lab~npi-registry-provider-scraper/runs?token=$APIFY_TOKEN'\
-H'Content-Type: application/json'\
-d'{"mode":"search","maxResults":50,"state":"MA","city":"Boston","taxonomyDescription":"Cardiology"}'

MCP usage

Connect this actor through Apify MCP at:

https://mcp.apify.com/?tools=automation-lab/npi-registry-provider-scraper

Claude Code setup:

$claude mcp add apify-npi-registry https://mcp.apify.com/?tools=automation-lab/npi-registry-provider-scraper

Claude Desktop JSON configuration:

{
"mcpServers":{
"apify-npi-registry":{
"url":"https://mcp.apify.com/?tools=automation-lab/npi-registry-provider-scraper"
}
}
}

Example prompts:

  • "Find cardiology providers in Boston and summarize specialties."
  • "Look up these NPI numbers and return phone and address fields."
  • "Build a provider list for physical therapists in Austin, Texas."

Data quality notes

The actor returns data exactly as published by the CMS NPI Registry. Some providers omit phone, fax, endpoint, or license fields. Address and taxonomy values can reflect registry updates submitted by providers or organizations. Always verify critical business decisions against the official source.

Legality

This actor uses the public CMS NPI Registry API. The NPI Registry is intended for public provider lookup, but users remain responsible for following applicable laws, platform terms, privacy rules, and healthcare compliance requirements. Do not use exported data for spam or unlawful targeting.

FAQ

Is this an official CMS tool?

No. This is an independent Apify actor that reads the public CMS NPI Registry API and formats results for exports and automations.

Can I search multiple provider specialties?

Yes. Add multiple objects to searches, one per specialty, city, state, organization, or other filter combination.

Troubleshooting

Why did I get fewer records than expected?

The CMS API may have fewer matching providers for your exact filters. Try broader specialty text, remove city, or split by state and ZIP code.

Why are phone numbers missing?

Phone and fax fields are optional in registry records. The actor saves them when the CMS response includes them.

Why does a broad state search stop early?

Very broad queries can hit API pagination limits. Split the workload by city, ZIP prefix, specialty, or organization name for better coverage.

Related scrapers

Changelog

  • Initial version: CMS NPI Registry search and exact NPI lookup.

Support

If a run fails, include the run URL, input JSON, and a short description of the expected providers.

Quick reference

  • Use mode: search for discovery.
  • Use mode: lookup for exact NPI enrichment.
  • Use maxResults to control spend.
  • Use searches for batch territories.
  • Use taxonomyDescription for specialties.
  • Use enumerationType: NPI-1 for individuals.
  • Use enumerationType: NPI-2 for organizations.
  • Export JSON when you need nested taxonomy details.
  • Export CSV when you need spreadsheet-friendly leads.

You might also like

NPI Registry Scraper

logiover/npi-registry-scraper

NPPES NPI Registry scraper & API alternative. Extract US healthcare provider and NPI number data, export to CSV/JSON. No API key or login.

NPPES NPI Healthcare Provider Crawler

jungle_synthesizer/nppes-npi-crawler

Crawl healthcare provider records from the CMS NPPES NPI Registry. Extract NPI numbers, names, credentials, specialties, taxonomy codes, practice addresses, and phone numbers. Filter by state, specialty, city, ZIP, and provider type. Ideal for pharma sales, medical devices, and provider directories.

๐Ÿ‘ User avatar

BowTiedRaccoon

14

NPI Registry Scraper

crawlergang/npi-registry-scraper

Scrape the CMS National Provider Identifier (NPI) Registry, the official database of all US healthcare providers. Search by name, state, specialty, or organization, or look up a specific provider by NPI number.

2

5.0

NPI Registry Scraper

crawlerbros/npi-registry-scraper

Scrape the CMS National Provider Identifier (NPI) Registry, the official database of all US healthcare providers. Search by name, state, specialty, or organization, or look up a specific provider by NPI number.

NPI Provider Lookup

george.the.developer/npi-provider-lookup

Look up US healthcare providers and organizations by NPI number, name, taxonomy, city, or state from the CMS NPPES registry.

NPI Registry Provider Lookup & Enrichment

technicaldost/npi-registry-enrichment

Search and enrich US healthcare providers from the official public NPI Registry. Verified, de-noised results by name, organization, taxonomy, and location.

๐Ÿ‘ User avatar

Technical Dost Solutions

2

NPPES NPI Registry Scraper

crawlerbros/nppes-npi-registry-scraper

Scrape the US National Plan and Provider Enumeration System (NPPES) NPI Registry - the official federal database of 7M+ healthcare providers. Search by name, taxonomy/specialty, state, city, or NPI number. Returns physician names, credentials, specialties, practice addresses, phone numbers,