Healthcare Provider Contact Finder — NPI/NPPES Bulk Lookup
Pricing
from $2.00 / 1,000 provider records
Healthcare Provider Contact Finder — NPI/NPPES Bulk Lookup
Extract US healthcare provider records from the official NPPES NPI Registry — NPI number, specialty, license, practice address, phone, fax, authorized officials. Search by specialty, state, city, ZIP, or name. Pay per provider record.
Pricing
from $2.00 / 1,000 provider records
Rating
0.0
(0)
Developer
Steven Carleton
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
NPI Registry Scraper — NPPES Healthcare Provider Search, Lookup & Lead Export
Get every dentist in Miami, every orthopedic surgeon in your state, or every pharmacy in Colorado — with practice address and phone — as a clean spreadsheet. Then verify any of them against the official CMS registry instead of typing NPIs into the NPPES website one at a time.
Data comes from the official CMS NPPES NPI Registry API — the legally mandated record of all 8+ million US providers. No login, no API key, no HTML scraping.
See real providers for 5 cents before you commit
Set maxResults to 25 and run it once. You are charged $0.002 per provider record — so a 25-record look costs $0.05, and a run that matches nothing costs only Apify's fraction-of-a-cent start event.
What one record actually looks like
Real output from a live run — a Miami dental group, trimmed to the fields most people check first:
{"npi": "1104969039","enumerationType": "organization","name": "183 DENTAL GROUP, PA","status": "ACTIVE","specialty": "Dentist, General Practice","licenseNumber": "DN 12408","licenseState": "FL","practiceAddress": {"street": "636 NW 183RD ST","city": "MIAMI","state": "FL","zip": "33169-4470","phone": "305-652-8338","fax": "305-653-5807"},"authorizedOfficial": { "name": "TODD SMITH", "title": "dentist", "phone": "3056528338" },"npiUrl": "https://npiregistry.cms.hhs.gov/provider-view/1104969039"}
For organizations you also get the authorized official — the named decision maker, with a direct phone number.
What a real job costs
Pricing is $2.00 per 1,000 provider records ($0.002 each), charged only on records actually returned:
| What you pull | Records | Cost |
|---|---|---|
| A look at the output before buying | 25 | $0.05 |
| Every dentist in greater Miami | 1,925 (measured) | $3.85 |
| A capped statewide specialty list | 5,000 | $10.00 maximum |
That Miami figure is a real run: a Dentist + FL + 331* search returned 1,925 unique providers in a single run — past the NPPES API's own 1,200-record cap, de-duplicated by NPI. Cost: $3.85. The same list from a healthcare-list broker is a different order of magnitude.
On very large pulls: Apify caps each run with a maximum-charge limit. If a run reaches it, the run stops early and returns fewer records than your
maxResults— the run's status message will tell you when this happens. For big pulls, raise the maximum-charge setting on the run (or your plan limit) before starting it.
Breaking the 1,200-record cap (the thing most NPI scrapers get wrong)
The NPPES API hard-caps every search at 1,200 records — and past that it silently repeats the last page instead of erroring. Most NPI scrapers either stop at 1,200 or hand you the same providers over and over without telling you.
This Actor detects the cap and automatically fans out into ZIP-prefix sub-searches, de-duplicating by NPI, until the whole result set is fetched. That is how the Miami search above returned 1,925 unique providers rather than 1,200.
What data do you get?
One result per provider:
| Field | Example |
|---|---|
npi / npiUrl | 1265837074 + direct registry link |
enumerationType | individual (NPI-1) or organization (NPI-2) |
name / credential | JOHN A SMITH DDS / DDS |
specialty | Dentist, Family Medicine, Physical Therapist... |
licenseNumber / licenseState | State license of the primary specialty |
taxonomies | Every specialty with license details |
practiceAddress | Street, city, state, ZIP, phone, fax |
mailingAddress / additionalPracticeLocations | Full location footprint |
authorizedOfficial | Decision maker name, title, and phone (organizations) |
identifiers | Medicaid and insurer IDs on the record |
enumerationDate / lastUpdated / status | Registry dates and active status |
Use cases
- Healthcare sales & marketing lists — every provider of a given specialty in your territory, with practice phone numbers: dental-supply reps pull dentists by metro ZIP prefix, device reps pull orthopedic surgeons by state.
- Provider directory & data enrichment — join your customer or claims data to the authoritative registry by NPI; verify specialty, license, and active status in bulk.
- New-provider detection — filter output on
enumerationDatefor providers who just received their NPI: new practices are prime prospects for EHR, billing, and equipment vendors. - Recruiting — build lists of licensed clinicians by specialty and city for outreach.
- Credentialing & compliance — bulk-verify NPIs, licenses, and practice addresses against the official source instead of typing them into the NPPES website one at a time.
- AI agents / MCP — a clean, filterable interface to the national provider registry for agent-driven verification and enrichment.
How to use it
Every dentist in greater Miami (ZIP prefix wildcard):
{"taxonomyDescription": "Dentist","state": "FL","postalCode": "331*","maxResults": 2000}
Physical therapists (individuals only) in Houston:
{"taxonomyDescription": "Physical Therapist","state": "TX","city": "Houston","enumerationType": "individual","maxResults": 1000}
Pharmacies statewide:
{"taxonomyDescription": "Pharmacy","state": "CO","enumerationType": "organization","maxResults": 5000}
The NPPES API requires at least one criterion besides state — a specialty, city, postal code, or name. Names and organization names support trailing wildcards (mayo*). Set includeRawData to true to attach the complete raw NPPES record. You are only charged for records actually returned.
Data source & freshness
Records come from the NPPES NPI Registry API operated by CMS (npiregistry.cms.hhs.gov) — the authoritative, legally mandated registry of every US healthcare provider with a National Provider Identifier. CMS updates it daily as providers register and update their records. Because the Actor uses the official public API instead of scraping directory sites, it cannot be blocked and the data is never second-hand.
Pricing
Pay per result: $0.002 per provider record ($2.00 per 1,000). You are charged per record actually returned, plus Apify's small platform events: a fraction-of-a-cent Actor start event and $0.00001 per dataset item — about 0.5% on top of the per-record price. No subscription; a run that finds nothing costs only the fraction-of-a-cent start event.
FAQ
Do I need an API key or CMS account? No. The NPPES API is public and keyless.
Individual vs organization? NPI-1 is a person (physician, dentist, nurse practitioner...); NPI-2 is an entity (clinic, hospital, pharmacy, group practice). Filter with enumerationType, or leave it empty for both.
Does it include email addresses? NPPES does not publish provider emails — no NPI dataset legitimately includes them. You get practice phone, fax, address, and (for organizations) the authorized official's direct phone. Actors that sell "NPI emails" are enriching from other sources at 10x the price.
How complete are the results? Complete. The Actor detects the NPPES 1,200-record cap and automatically subdivides the search by ZIP prefix until the whole result set is fetched, de-duplicated by NPI. Verified: a Miami-area dentist search returned 1,925 unique providers in one run. Very broad searches (a whole state with no other filter) are rejected by the API itself — add a specialty, city, or ZIP prefix.
Can I search by taxonomy code? Yes — taxonomyDescription accepts either the description (Dentist) or an exact taxonomy code (122300000X).
Why do some results show a different ZIP than I searched? NPPES matches postalCode against any of the provider's addresses (practice, mailing, or secondary locations). A provider practicing in Miami with a mailing address elsewhere still matches — check practiceAddress, mailingAddress, and additionalPracticeLocations in the output.