NPI Registry Scraper - Healthcare Providers & Leads
Pricing
from $2.20 / 1,000 provider record scrapeds
NPI Registry Scraper - Healthcare Providers & Leads
Scrape the NPPES NPI Registry: US doctors, clinicians & healthcare organizations by name, NPI, state, city, ZIP or specialty. Get addresses, phone & fax, taxonomies, licenses, org authorized officials, contact leads & lead scores. Monitor new registrations. No key.
Pricing
from $2.20 / 1,000 provider record scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
NPI Registry Scraper — US Healthcare Providers, Organizations & Contact Leads
Pull clean, structured data from the NPPES NPI Registry — the U.S. government's authoritative database of every healthcare provider with a National Provider Identifier (NPI). Search 8M+ individual clinicians (NPI‑1) and healthcare organizations (NPI‑2) by name, NPI number, specialty, state, city or ZIP, and get the full record: taxonomies, licenses, practice & mailing addresses, phone & fax, identifiers — plus ready‑to‑use B2B contact leads with a named decision‑maker and a 0–100 lead score.
No login, no API key, no browser. Fast, reliable extraction straight from the official CMS data source.
Why this NPI / NPPES scraper?
Most NPI tools hand back the raw, deeply‑nested government JSON or a thin name‑and‑number list. This actor ships the richest, cleanest dataset in the category and turns the registry into a sales‑ready lead list — every record carries a phone number, and every organization carries its authorized official (a named owner/officer with title and a direct phone).
| Data | Generic NPI tools | This actor |
|---|---|---|
| NPI, type (individual/org), status | ✅ | ✅ |
| Clean name / organization name | partial | ✅ |
| Primary specialty + all taxonomies (code, license, state) | partial | ✅ |
| Practice and mailing address | partial | ✅ |
| Phone & fax (formatted) | ❌/partial | ✅ ~100% |
| Organization authorized official (name, title, direct phone) | ❌ | ✅ |
| Additional practice locations | ❌ | ✅ |
| Other identifiers (Medicaid / Medicare / etc.) | ❌ | ✅ |
| Contact‑lead record + 0–100 lead score | ❌ | ✅ |
| Search by name / NPI / specialty / state / city / ZIP | partial | ✅ all |
| Cross‑combine many specialties × states in one run | ❌ | ✅ |
| Only‑new monitoring of fresh registrations | ❌ | ✅ |
| One clean table per entity (no empty columns) | ❌ | ✅ |
Use cases
- Healthcare B2B lead generation — build targeted prospect lists for medical‑device, pharma, SaaS, billing, staffing, marketing and supply vendors. Filter by specialty + geography, then export name, organization, phone, address and the authorized official to your CRM.
- Sales territory & market mapping — count and locate every dentist, pharmacy, physical‑therapy clinic or nurse practitioner in a state, city or ZIP.
- Provider data enrichment & validation — look up NPIs in bulk to verify names, specialties, licenses and current addresses against the federal source of truth.
- Recruiting & credentialing — find clinicians by specialty and location, with license numbers and states.
- Compliance & research — reconcile provider rosters, dedupe directories, and track new enrollments over time.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the NPI Registry Scraper, choose a specialty (e.g.
Dentist) and a state (e.g.CA), and pick what to output (Providers by default, or Leads). - Click Start and watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML or RSS — or pull results programmatically via the Apify API.
Input
{"mode": "search","outputType": "leads","taxonomyDescription": "Dentist","states": ["CA", "TX", "NY"],"enumerationType": "NPI-2","maxResults": 500}
- mode (default
search) —searchqueries by criteria;npiLookupfetches specific NPI numbers fromnpiNumbers. - outputType (default
providers) —providers(full registry records),leads(contact‑focused + lead score), orboth. - taxonomyDescription / specialty — provider type from the NUCC taxonomy:
Dentist,Pharmacy,Physical Therapist,Internal Medicine,Nurse Practitioner… (partial match + trailing*wildcard). - state / city / postalCode — single values, or use states / cities / postalCodes arrays to cross‑combine many in one run.
- firstName / lastName (individuals) and organizationName (organizations) — supports a trailing
*wildcard. - enumerationType — limit to
NPI-1(individuals) orNPI-2(organizations); blank = both. - npiNumbers — one or more 10‑digit NPIs for
npiLookupmode. - searchUrls — paste NPPES API/registry URLs; their parameters are parsed into searches.
- enrichContacts (default false) — if a provider lists a website endpoint, fetch its homepage for emails/socials.
- monitorMode / monitorKey — emit only providers not seen in previous runs (ideal on a schedule).
- maxResults, maxConcurrency, proxyConfiguration — standard controls.
Output
Set outputType to get one clean, dense table. A provider record (type: "provider"):
{"type": "provider","npi": "1063386555","npiUrl": "https://npiregistry.cms.hhs.gov/provider-view/1063386555","enumerationType": "NPI-2","providerType": "Organization","status": "Active","organizationName": "1 Davison Ave Dentistry PLLC","authorizedOfficialName": "Gavriel Gulamov","authorizedOfficialTitle": "OWNER","authorizedOfficialPhone": "(646) 593-9305","primarySpecialty": "Dentist, General Practice","primaryTaxonomyCode": "1223G0001X","licenseNumber": "071234","licenseState": "NY","taxonomies": [{ "code": "1223G0001X", "description": "Dentist, General Practice", "primary": true, "state": "NY", "license": "071234" }],"practiceAddress": { "line1": "1 Davison Ave", "city": "Staten Island", "state": "NY", "postalCode": "10314-1234", "phone": "(646) 593-9305", "fax": null },"phone": "(646) 593-9305","city": "Staten Island","state": "NY","enumerationDate": "2018-05-01T00:00:00.000Z","scrapedAt": "2026-06-18T00:36:28.000Z"}
A lead record (type: "providerLead") distils the same provider into a contact row: name, organizationName, primarySpecialty, a named contactName / contactTitle / contactPhone (the org's authorized official, or the individual provider), phone, fax, email & website (when available), address, city, state, licenseNumber and a leadScore (0–100).
What to expect (field coverage)
NPPES is provider‑submitted federal data. Verified across specialties and states, you can typically expect:
| Field | Coverage |
|---|---|
| NPI, type, status, name/organization | ✅ ~100% |
| Primary specialty + taxonomies | ✅ ~100% |
| Practice address, city, state, ZIP | ✅ ~100% |
| Phone | ✅ ~100% · fax ~60–80% |
| Organization authorized official (name, title, phone) | ✅ for organizations (NPI‑2) |
| License number / state | ✅ when the taxonomy is state‑licensed |
email / website | present only when the provider registered an endpoint (NPPES rarely lists a marketing site) — phone is always the primary contact |
A blank field means the provider didn't submit it — nothing is dropped, so you always get the richest record available.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, manage schedules over REST.
- apify-client for JavaScript and Python — official SDKs.
- Schedules — run it daily/weekly with monitor mode to capture newly‑registered providers as fresh leads.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/npi-nppes-scraper').call({mode: 'search',outputType: 'leads',taxonomyDescription: 'Pharmacy',state: 'TX',enumerationType: 'NPI-2',maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} provider leads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi‑step automation scenarios.
- Zapier — push new provider leads straight into your CRM.
- Slack — get notified when a monitored search finds new registrations.
- Google Drive / Sheets — auto‑export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM‑ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server — ask your assistant to "list every pharmacy in Texas with a phone number and the owner's name" and let it run the scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete healthcare data & B2B lead‑gen stack:
- CMS Open Payments Scraper — drug & device industry payments to physicians and teaching hospitals.
- Clinical Trials Scraper — ClinicalTrials.gov studies, sponsors and research‑site/investigator leads.
- FDA openFDA Scraper — drug/device/food recalls, adverse events, clearances and manufacturer leads.
- Healthgrades Scraper — physician profiles, ratings, reviews and contact details.
- WebMD Scraper — provider directory profiles, specialties and reviews.
- TherapyDen Scraper — therapist & mental‑health provider leads.
- Caring Senior Living Scraper — senior‑living & care facility leads.
- Website Contact Scraper — enrich any domain list with emails, phones and socials.
Tips
- Pick one
outputType(Providers or Leads) for a clean, fully‑populated table that's perfect for direct export. Usebothto keep the full record alongside the lead row. - Going deep in one area? Each NPPES query returns up to 1,200 results — narrow by specialty + state + city (or ZIP) to slice a large market into complete, exportable chunks.
- Targeting organizations? Set
enumerationTypetoNPI-2— every org carries its authorized official (a named owner/officer with a direct phone), the highest‑value B2B contact in the registry. - Recurring fresh leads: combine Schedules with monitor mode (and a unique
monitorKeyper search) to receive only newly‑registered providers each run.
FAQ
Where does the data come from? The official NPPES NPI Registry API (npiregistry.cms.hhs.gov), published by the U.S. Centers for Medicare & Medicaid Services (CMS). It's public data — no key or login required.
What's an NPI? A National Provider Identifier — a unique 10‑digit number every U.S. healthcare provider and organization must have for HIPAA transactions. NPI‑1 = individuals; NPI‑2 = organizations.
Can I look up specific providers? Yes — set mode to npiLookup and paste 10‑digit NPI numbers into npiNumbers.
How do I get the owner / decision‑maker? For organizations (NPI‑2), the authorized official (name, title and direct phone) is included automatically and used as the lead's contact.
Do I get emails? NPPES rarely stores a marketing website or email, so the primary contact is the registered phone (always present) and, for organizations, the authorized official. If a provider registered a website endpoint, enable enrichContacts to scrape it for emails and social links.
Can I export to Google Sheets, CSV or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
Is this legal? This actor collects publicly available U.S. government data. You're responsible for using it in compliance with applicable laws (e.g. TCPA/CAN‑SPAM for outreach) and Apify's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.