NPI Registry Scraper — 8M Healthcare Providers, DEA + License
Pricing
$2.00 / 1,000 results
NPI Registry Scraper — 8M Healthcare Providers, DEA + License
Extract 8M+ US healthcare providers from CMS NPPES. 44 fields: practice + mailing addresses, DEA & state licenses, taxonomies, endpoints, authorized officials. Filter by specialty, state, city, zip, name, or organization. Batch NPI lookup. HTTP-only, $2/1K.
Pricing
$2.00 / 1,000 results
Rating
5.0
(1)
Developer
Sourabh Kumar
Actor stats
0
Bookmarked
16
Total users
6
Monthly active users
19 days ago
Last modified
Categories
Share
🏥 NPI Registry Scraper — Healthcare Provider Leads from CMS NPPES
Search and extract healthcare provider data from the official CMS NPPES NPI Registry. Get contact details, specialties, addresses, license numbers, DEA, and electronic endpoints for doctors, dentists, nurses, and medical organizations across the US. No login, no scraping — direct access to a free public government API.
⚡ Why this NPI Registry scraper?
The NPI Registry is the authoritative source for US healthcare provider data — 8M+ providers, maintained by the federal government, always up to date. Most teams query it manually or build their own integrations. This actor makes it plug-and-play:
- 💰 Affordable: Just $2.00 per 1,000 providers.
- 🚀 Fast: Pure API calls — no browser, no proxy, no headless Chrome. 1,000 results in seconds.
- 🏛️ Official data: Directly from the CMS NPPES API — the same database hospitals and insurers use.
- 📋 Rich output: 44 fields per provider — practice + mailing addresses, full taxonomy array with licenses, DEA/state license identifiers, electronic endpoints, additional practice locations, and authorized official contacts for organizations.
- 🔍 Flexible filtering: Search by specialty, state, city, zip code, name, organization, or look up single/batch NPI numbers.
- 🏢 Individuals + organizations: Covers both licensed practitioners (NPI-1) and healthcare organizations like hospitals and clinics (NPI-2).
- 🗂️ Batch lookup: Pass an array of NPI numbers and get all records in one run — perfect for credentialing workflows.
📦 What data can you extract?
Each provider record includes 44 fields:
- 🪪 Identity: NPI number, provider type, status (Active/Deactivated), name prefix/suffix, credential, gender, enumeration & last-updated dates
- 🏥 Organization: Organization name, organizational-subpart flag, authorized official name, title, phone, and credential
- 🔬 Specialties: Primary specialty (convenience) + full
taxonomies[]array with code, description, license number, license state, and primary flag for every taxonomy the provider has - 🔖 Identifiers: Full
identifiers[]array — DEA number, state license numbers, UPIN, Medicaid IDs, and other regulatory identifiers with issuer and state - 📍 Practice address (flat convenience): street, suite, city, state, zip, country, phone, fax
- 📮 Mailing address (separate): street, suite, city, state, zip, phone
- 🗺️ Additional practice locations:
practiceLocations[]array with all secondary addresses - 🔌 Electronic endpoints:
endpoints[]array — Direct secure-messaging addresses and content types for interoperability - 🏷️ Other names:
otherNames[]array — previous / alternate names the provider has used - 🔗 Source link: Direct URL to NPPES provider-view for verification
💲 How much does it cost?
The NPI Registry scraper uses pay-per-event pricing — you only pay for what you extract:
- $2.00 per 1,000 providers
Example costs:
| What you extract | Providers | Cost |
|---|---|---|
| Family medicine doctors in Texas | 500 | $1.00 |
| All dentists in California | 2,000 | $4.00 |
| Full specialty export (e.g., all NPs in NY) | 5,000 | $10.00 |
🎯 Use cases
- 💊 Pharma sales: Build targeted lists of prescribers by specialty and geography. Use DEA numbers from
identifiers[]to verify controlled-substance authority before outreach. - 🦷 Dental supply: Find all dentists in a region with phone, address, and license number.
- 🏥 Medical device reps: Identify surgeons in your territory with verified contact details and all practice locations.
- 💻 Healthcare SaaS: Enrich your provider database or validate NPI + license numbers at scale.
- 🏢 Practice management: Generate lists of practices (NPI-2) with authorized-official contacts for decision-maker outreach.
- 🧾 Medical billing & credentialing: Verify NPIs, state licenses, and DEA in one pass. Use
batch_lookupto validate 1,000+ NPIs at once. - 📊 Market research: Analyze provider density, specialty distribution, and coverage gaps.
- 🔗 CRM enrichment: Append verified phone, fax, addresses, specialty, and license data to existing records.
- 🔌 Interoperability: Use
endpoints[]to find Direct secure-messaging addresses for HIE integration.
📥 Input
| Field | Type | Description | Default |
|---|---|---|---|
taxonomy | string | Provider specialty (e.g., "Family Medicine", "Dentist", "Nurse Practitioner") | — |
state | string | Two-letter US state code (e.g., "CA", "TX", "NY") | — |
city | string | City name (e.g., "Los Angeles", "Houston") | — |
postalCode | string | 5-digit US zip code (e.g., "90210") or prefix with wildcard ("900*") | — |
firstName | string | Provider first name. Supports wildcards (e.g., "Jo*" matches John, Jose) | — |
lastName | string | Provider last name. Supports wildcards (e.g., "Sm*" matches Smith, Smythe) | — |
organizationName | string | Search organizations by name (e.g., "Kaiser", "Mayo Clinic"). Auto-switches provider type to organization. | — |
npiNumber | string | Look up a single provider by exact 10-digit NPI number | — |
npiNumbers | array | Batch lookup — array of 10-digit NPI numbers. Overrides other filters. | — |
providerType | string | Filter by type: "both", "individual", or "organization" | "both" |
maxResults | number | Maximum number of providers to return. Leave empty for up to ~1,000 per query (CMS API cap). | No limit |
Note: When none of the filters above are provided, the actor defaults to
taxonomy="Family Medicine"+state="CA"+maxResults=10so a blank run always succeeds with sample data.
💡 Example inputs
Filter search — cardiologists in California:
{"taxonomy": "Cardiology","state": "CA","maxResults": 500}
Find hospitals by name:
{"organizationName": "Kaiser","state": "CA","maxResults": 50}
Single NPI lookup:
{"npiNumber": "1245319599"}
Batch NPI lookup (credentialing / validation):
{"npiNumbers": ["1245319599","1871538041","1932102168"]}
📤 Output
Each provider is stored as a JSON object with 44 fields (arrays for taxonomies, identifiers, endpoints, practice locations):
{"npi": "1245319599","type": "individual","status": "Active","firstName": "Sarah","lastName": "Mitchell","middleName": "L","namePrefix": "Dr.","credential": "MD","gender": "F","specialty": "Family Medicine","taxonomyCode": "207Q00000X","licenseNumber": "A123456","licenseState": "CA","phone": "310-555-0192","fax": "310-555-0193","address": "1234 Wilshire Blvd","suite": "Suite 400","city": "Los Angeles","state": "CA","zip": "90010","country": "US","mailingAddress": "PO Box 9000","mailingCity": "Los Angeles","mailingState": "CA","mailingZip": "90009","taxonomies": [{ "code": "207Q00000X", "description": "Family Medicine", "primary": true, "licenseNumber": "A123456", "licenseState": "CA" }],"identifiers": [{ "code": "05", "description": "MEDICAID", "identifier": "CA-MED-123", "state": "CA", "issuer": null },{ "code": "06", "description": "DEA", "identifier": "BM1234567", "state": "CA", "issuer": "DEA" }],"endpoints": [{ "endpointType": "DIRECT", "endpoint": "sarah.mitchell@direct.example.org" }],"practiceLocations": [],"enumerationDate": "2003-06-12","lastUpdated": "2024-11-08","nppesUrl": "https://npiregistry.cms.hhs.gov/provider-view/1245319599","scrapedAt": "2026-04-17T12:00:00.000Z"}
Download results as JSON, CSV, Excel, or access via Apify API.
🔬 Supported specialties
Search by any specialty description from the CMS taxonomy. Common examples:
| Category | Example specialties |
|---|---|
| Primary care | Family Medicine, Internal Medicine, Pediatrics, Geriatric Medicine |
| Dental | Dentist, Oral & Maxillofacial Surgery, Orthodontics, Endodontics |
| Vision | Optometrist, Ophthalmology |
| Mental health | Psychiatry & Neurology, Clinical Psychology, Clinical Social Worker |
| Nursing | Nurse Practitioner, Registered Nurse, Certified Nurse Midwife |
| Allied health | Physical Therapist, Occupational Therapist, Speech-Language Pathologist |
| Surgery | General Surgery, Orthopedic Surgery, Plastic & Reconstructive Surgery |
| Other | Chiropractic, Podiatry, Dermatology, Cardiology, Radiology |
| Organizations | Hospital, Clinic/Center, Group Practice, Pharmacy, Laboratory |
Tip: Use partial names —
"Nurse"will match Nurse Practitioner, Registered Nurse, and other nurse specialties.
🏛️ Data source
All data comes directly from the CMS NPPES NPI Registry — the official National Plan and Provider Enumeration System maintained by the Centers for Medicare & Medicaid Services (CMS), US Department of Health & Human Services.
- API:
https://npiregistry.cms.hhs.gov/api/?version=2.1 - Coverage: 8M+ active and deactivated healthcare providers in the United States
- Update frequency: The registry is updated daily by CMS
- License: Free public government data — no copyright restrictions
- No login required: Open public API, no API key needed
This is the same authoritative source used by hospitals, insurance companies, and healthcare clearinghouses for provider verification.
💡 Tips and notes
- 🔗 Two criteria minimum: The NPI API needs at least 2 search filters. Combine
taxonomy+state(most common) ortaxonomy+city+state. Single-field searches may return an error — the actor handles this gracefully and logs a warning. - 🔍 Wildcards: Append
*to names/zips for wildcard search (e.g.,"Sm*","900*"). Requires at least 2 leading characters. - 🏢 Organizations: Set
providerType="organization"or useorganizationNameto find hospitals, clinics, group practices, and labs (NPI-2 entities). - 📍 Address priority: Flat address fields (
address,phone, etc.) come from the LOCATION (practice) address, with MAILING as fallback. Both addresses are always available as separate fields. - 🗂️ Batch lookup:
npiNumbersaccepts an array for credentialing workflows — validate hundreds of NPIs in one run. - 🔖 DEA & licenses: Check
identifiers[]for DEA (code06), state license (05,04,01), UPIN (02), and Medicaid (05) numbers with their issuing state. - 🔢 Single lookup: Use
npiNumber(string) for one provider, ornpiNumbers(array) for many. - 📊 Pagination cap: The CMS API silently caps results at ~1,000 per query. If you need more, narrow by city or zip code.
- 📋 CSV export: Flat convenience fields make the default table view CSV-friendly. Nested arrays (taxonomies, identifiers) are available in JSON/Excel exports for full detail.