NPI Registry Scraper — US Healthcare Providers
Pricing
Pay per usage
NPI Registry Scraper — US Healthcare Providers
Extract US doctors, dentists, nurses & healthcare organizations from the official CMS NPPES NPI Registry. Search by name, specialty, state, city or NPI number — get NPI, credentials, license, specialty, address & phone. No API key. Ideal for healthcare lead generation.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
RDX 1S
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Turn the official CMS NPPES NPI Registry into clean, structured data — every US doctor, dentist, nurse, therapist, pharmacy, hospital and clinic. Search by name, specialty, location, or NPI number and export 35+ fields per provider to CSV, JSON, or Excel.
✅ No API key. No rate limits. No login. The NPI Registry is public record published by CMS — this Actor just makes it usable.
What you can do with it
- Build a targeted provider list — e.g. every cardiologist in California or every pediatric dentist in New York, with license #, specialty, phone, fax and address.
- Verify a roster of NPIs — paste a list of 10-digit NPI numbers and get back current status, license, specialty and contact details (credentialing, claims, provider-network checks).
- Enrich CRM / lead data — match providers and pull specialty, credential, phone, fax, mailing address, and Medicaid / NCPDP identifiers.
- Feed an AI agent — call it as a tool over MCP, or wire it into n8n, Make and Zapier to keep a provider database fresh automatically.
Example input
{"searchType": "individual","specialties": ["Cardiology"],"state": "CA","activeOnly": true,"maxResults": 500}
Sample output (one record, trimmed)
{"npi": "1982227625","fullName": "TARIQ AL-SALEH","credential": "PHARMD","statusText": "Active","primarySpecialty": "Pharmacist, Ambulatory Care","licenseNumber": "RPH12345","licenseState": "CA","city": "EL CAJON","state": "CA","phone": "619-923-5880","fax": "619-923-5881","medicaidId": "PHB213120","nppesUrl": "https://npiregistry.cms.hhs.gov/provider-view/1982227625"}
What you get (35+ fields)
- Identity: NPI, full name (+ prefix/suffix), credential, sex, status.
- Specialties: primary specialty + license #/state, plus every secondary taxonomy with its own license and state.
- Contact: practice phone & fax, full location address, mailing address, and every additional practice location.
- Identifiers: Medicaid / NCPDP and other payer IDs — the join keys to claims and pharmacy data.
- Trust: human-readable status and a one-click link to the official NPI
Registry profile. Optional health-IT
endpointsfor telehealth use-cases.
Works with AI agents & automation
Every Apify Actor is exposed as a tool over the Model Context Protocol (MCP), so AI agents can call this scraper directly. It also runs from n8n, Make, Zapier, the Apify API, or on a schedule.
Good to know
- Source: public CMS NPPES NPI Registry — no PII beyond what CMS publishes.
- A single query segment returns up to ~1,200 rows; for bigger pulls, narrow by
state / specialty / city (the Actor paginates within each segment). A
statefilter alone isn't enough — combine it with a name, organization, specialty, or city.
Input reference
| Field | Type | Description |
|---|---|---|
searchType | string | individual (NPI-1), organization (NPI-2), or all. Default individual. |
lastName | string | Individual providers: last name. Trailing wildcard allowed, e.g. sm*. |
firstName | string | Individual providers: first name. Trailing wildcard allowed. |
organizationName | string | Organizations: name, e.g. HOSPITAL. Trailing wildcard allowed. |
specialties | array | Filter by taxonomy/specialty, e.g. Cardiology, Nurse Practitioner. Each is searched separately and merged. |
state | string | Two-letter state code (e.g. NY). Must be combined with another criterion. |
city | string | City name, e.g. Miami. |
postalCode | string | ZIP code. Trailing wildcard allowed, e.g. 900*. |
npiNumbers | array | Look up specific providers directly by 10-digit NPI number. |
maxResults | integer | Max number of records to collect (default 100). |
activeOnly | boolean | Keep only providers with an active NPI status. |
includeEndpoints | boolean | Add the FHIR / health-IT endpoints array (default off). |
includeRaw | boolean | Add the full raw NPPES record to each result (default off). |
Run locally
pip install -r requirements.txtapify run