NPI Registry Scraper - US Healthcare Providers
Pricing
from $4.00 / 1,000 provider locations
NPI Registry Scraper - US Healthcare Providers
Scrape the NPPES NPI Registry: US healthcare providers as one row per practice location, with specialty (taxonomy), license number, phone, fax and, for organizations, the authorized official. Filter by specialty, state, city and postal code for healthcare leads.
Pricing
from $4.00 / 1,000 provider locations
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
What does NPI Registry Scraper do?
US healthcare providers from the official NPI Registry — one row per practice location, with specialty in plain language, licence number, phone, fax, and the authorized official for organizations.
No login. No API key. No proxies.
One row per location, not per provider
The registry returns a provider with their addresses nested inside. For a field team that is the wrong shape: a practice operating from three sites is three targets, three phone numbers, three visits — and a single row hides two of them.
Measured on real data:
| Query | Providers | Location rows | Gain |
|---|---|---|---|
| Hospitalists, New York organizations | 23 | 40 | +74 % |
| Cardiology, Houston | 3 | 5 | +67 % |
| Dentists, California | 48 | 60 | +25 % |
Phone coverage runs 97–100 % on practice locations.
Mailing addresses are skipped by default. A mailing address is often a PO box or a billing service — the wrong door for a visit — but you can include them with one switch when you need them for correspondence.
The authorized official
For organizations, the registry names the person who signs for the entity — CFO, Administrator, Owner — with their title and often a direct phone number. That is the decision-maker, and it comes free with the record.
The Decision makers view in the dataset shows exactly that column set.
Output
| Field | Example |
|---|---|
providerName | ADIRONDACK MEDICAL CENTER |
entityType | Organization / Individual |
specialty | Dentist, General Practice |
taxonomyCode | 1223G0001X |
otherSpecialties | secondary taxonomies |
licenseNumber, licenseState | 54634, CA |
addressType | Practice location / Additional location / Mailing |
address1, address2, city, state, postalCode, postalCodeFull | |
phone, fax | 518-897-2479 |
authorizedOfficial, authorizedOfficialTitle, authorizedOfficialPhone | CURTIS EADE, CFO |
credential, sex, status, soleProprietor |
sex carries what NPPES publishes — M or F, the sex recorded
on the registry application — and is empty for organisations
(NPI-2), which do not have one. It is named for what it holds
rather than gender, which the source does not claim to know.
| enumerationDate, lastUpdated | |
| npi, npiUrl | 1760813802 |
postalCode gives the five-digit ZIP for joins; postalCodeFull keeps the
ZIP+4 exactly as registered.
Input
{"taxonomy": "Dentist","state": "CA","practiceLocationsOnly": true,"maxItems": 500}
| Field | Default | Notes |
|---|---|---|
taxonomy | Dentist | Specialty as the registry spells it |
state | CA | Two-letter code |
entityType | both | Individuals, organizations, or both |
practiceLocationsOnly | true | Skip mailing addresses |
onlyWithPhone | false | Keep only locations with a phone number |
maxItems | 500 | Counts locations, not providers |
city, postalCode | — | Narrow geographically |
organizationName, firstName, lastName | — | Search by name |
The registry refuses a search on state alone. Keep a specialty, city, postcode or name alongside it — the Actor says so plainly instead of returning an empty file.
Use cases
- Medical device and pharma field sales — territory lists by specialty and postcode, one row per site to visit.
- Healthcare staffing — practices in a specialty and area, with phone.
- Provider network building — who practises where, with licence numbers.
- Market sizing — count providers by specialty across states.
- Data cleaning — verify an NPI, its current specialty and address.
Limits, honestly
- Specialty is matched on the registry's own wording. "Cardiology"
matches several taxonomies including "Pharmacist, Cardiology"; a narrow
query may return adjacent specialties. Check
specialtyandtaxonomyCodeon the rows. - Licence numbers are present on roughly a third to a half of rows, depending on specialty — organizations often have none.
- The registry reflects what providers self-report and can lag a move or a
retirement.
lastUpdatedtells you how stale a record is. - This is provider directory data, not patient data, and contains no clinical information.
- Requests are paced out of courtesy to a free public service.
- Not affiliated with CMS or the NPI Registry.
How much does it cost?
You pay per provider location returned: $0.006 each, that is $6.00 per 1,000. There is no start fee, and subscription plans pay less per provider location.
The example input below asks for up to 200 provider locations, so it costs $1.20 at most.
If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.
Use NPI Registry Scraper as an API
Call it from your own code with the Apify client, here in Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/nppes-npi-provider-registry").call(run_input={'taxonomy': 'Dentist','state': 'CA','maxItems': 200,'practiceLocationsOnly': True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.
Other actors you might like
- FDA 510(k) Scraper: Device Clearances Data
- FDA Recalls Scraper: openFDA Enforcement
- CMS Open Payments Scraper: Physician Payments
FAQ
Is it legal to use this data?
The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.
Can I run it on a schedule?
Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.
Can AI agents use it?
Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.