⚕️ Doctor Directory Lead Finder avatar

⚕️ Doctor Directory Lead Finder

Pricing

from $30.00 / 1,000 provider record returneds

Go to Apify Store
⚕️ Doctor Directory Lead Finder

⚕️ Doctor Directory Lead Finder

NPI Registry-grounded US doctor leads + optional Healthgrades/Vitals enrichment. Specialty + state filter across all 50 states. HIPAA-safe public data only. Built for medical-device sales, pharma reps, EHR/PMS SaaS, telehealth recruiting.

Pricing

from $30.00 / 1,000 provider record returneds

Rating

0.0

(0)

Developer

Stephan Corbeil

Stephan Corbeil

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

⚕️ Doctor Directory Lead Finder — NPI + Healthgrades

Pull qualified US healthcare-provider leads — name, NPI, specialty, practice address, phone, and (where available) email — by specialty and state. Built for medical-device sales, pharma reps, EHR/PMS SaaS prospecting, healthcare-marketing agencies, and telehealth recruiting teams who refuse to pay $30K/year for Definitive Healthcare.

NPI Registry is the federal canonical spine (100% US coverage, zero cost, public-record data). We layer optional Healthgrades-style enrichment for accepting-new-patients status, ratings, and contact details — honestly disclosed at a ~30–35% email find rate.


HIPAA-Safety Statement — read this first

This actor touches zero patient data. It exclusively uses:

  1. NPI Registry — federal public registry published by CMS (Centers for Medicare & Medicaid Services) under the Health Insurance Portability and Accountability Act (HIPAA) Administrative Simplification rules. Every U.S. healthcare provider who bills any insurer is listed here. The data is explicitly designated as public and downloadable in bulk from cms.hhs.gov. We hit the public JSON API.
  2. Healthgrades / Vitals / Doctoralia (optional, only when enrichContact=true) — consumer-facing provider directories. We read only the same fields a patient searching for a doctor would see in a browser: practice name, address, phone, rating, "accepting new patients" badge.

We never collect, request, store, or transmit Protected Health Information (PHI). No diagnoses, no treatments, no patient encounters, no insurance records, no anything that would trigger a HIPAA covered-entity obligation. Buyers in regulated industries can use this output for top-of-funnel B2B prospecting without HIPAA exposure, the same way they would use a LinkedIn export of physician profiles.


Use cases

  • Medical device sales — build a list of orthopedic surgeons in California for a knee-implant launch.
  • Pharma rep targeting — segment endocrinologists by state for a new GLP-1 detail.
  • EHR / PMS SaaS prospecting — pull every solo-proprietor family-medicine practice in Texas (sole-proprietor flag is in NPI itself).
  • Telehealth recruiting — find psychiatrists in 5 states for a multi-state telehealth panel.
  • Healthcare-marketing agencies — build segmented email lists by specialty + city for cold outreach campaigns.
  • M&A diligence — count cardiology practices in a target MSA before underwriting a roll-up.
  • Clinical-research outreach — recruit principal investigators by therapy area + region.

How it works

┌─────────────────────────────┐
YOU: specialty + state │
└─────────────┬───────────────┘
v
┌─────────────────────────────────────┐
│ Step 1NPI Registry API │ ← 100% US, zero cost, public
│ taxonomy_description + state filter│
│ Returns: name, NPI, address, taxonomy
└─────────────┬───────────────────────┘
│ provider-returned event ($0.03)
v
┌─────────────────────────────────────┐
│ Step 2 — Optional enrichment │ ← only when enrichContact=true
│ Healthgrades search (Playwright)
│ Reads: rating, accepting status,
│ occasional contact email │
└─────────────┬───────────────────────┘
│ contact-enriched ($0.05)
│ email-found ($0.10) ← only if found
v
┌─────────────────────────────────────┐
│ Dataset: one row per provider │
└─────────────────────────────────────┘

Honest find rates — we have no incentive to overpromise. Across recent test runs:

FieldFind rate
Name / NPI / address100% (NPI is canonical)
Practice phone~95% (in NPI; ~98% with directory enrichment)
Specialty / sub-specialty100% (NUCC taxonomy)
Accepting new patients~60% (when directory match exists)
Provider rating~55% (Healthgrades-dependent)
Email~30–35% (practice site contact-page scrapes)

If a directory blocks the request, the actor still returns the provider's NPI record — it never crashes on enrichment failure. You pay for provider-returned either way; contact-enriched only fires when enrichment actually produced data.


Supported specialties (50+)

Specialty input is case-insensitive and mapped to NUCC Health Care Provider Taxonomy codes (24.0). Unmapped strings fall through to NPI Registry's free-text taxonomy filter.

Physicians (allopathic + osteopathic): Anesthesiology, Cardiology, Cardiovascular Disease, Dermatology, Diagnostic Radiology, Emergency Medicine, Endocrinology, Family Medicine, Gastroenterology, General Surgery, Geriatrics, Hematology, Hospitalist, Infectious Disease, Internal Medicine, Interventional Radiology, Medical Oncology, Nephrology, Neurology, Neurosurgery, Ob-Gyn, Oncology, Ophthalmology, Orthopedic Surgery, Otolaryngology (ENT), Pain Medicine, Pathology, Pediatrics, Physical Medicine, Plastic Surgery, Psychiatry, Pulmonology, Radiology, Rheumatology, Sleep Medicine, Thoracic Surgery, Urology, Vascular Surgery.

Dentistry: Dentistry, Orthodontics, Endodontics, Periodontics, Oral Surgery.

Mental / behavioural health: Psychology, Clinical Social Work.

Mid-level providers: Nurse Practitioner, Physician Assistant, Midwife.

Other: Chiropractic, Optometry, Podiatry, Pharmacy.

For specialties or sub-specialties not in this list, type the NUCC classification name verbatim (e.g. "Pediatric Cardiology") and the actor will pass it through to the NPI Registry taxonomy filter.


Output schema (one object per provider)

FieldTypeExample
npistring"1234567890" (10-digit federal ID)
enumerationTypestring"NPI-1" (individual) or "NPI-2" (org)
firstNamestring"Sarah"
lastNamestring"Chen"
middleNamestring?"J"
credentialsstring?"MD", "DO", "DDS", "NP", "PA-C"
organizationNamestring?only on NPI-2 records
genderstring?"M", "F"
specialtystring"Cardiovascular Disease"
primaryTaxonomyCodestring"207RC0000X"
licenseNumberstring?"A123456"
licenseStatestring?"CA"
subSpecialtiesstring[]["Interventional Cardiology"]
soleProprietorbooltrue = solo practice (different sales motion)
practiceAddressobject{street, city, state, zip, phone, fax}
mailingAddressobjectsame shape
enumerationDatestring"2008-04-12" — proxy for years in practice
lastUpdatedstring"2024-11-03"
statusstring"A" = active
npiRegistryUrlstringdirect link to public NPI profile
practiceWebsitestring?enrichment only
practicePhonestringpreferred over NPI's listed phone
emailstring?~30–35% find rate (enrichment only)
acceptingNewPatientsbool?from directory
ratingnumber?0–5 from Healthgrades
yearsOfExperienceint?from directory bio
enrichmentSourcestring?"healthgrades" when enrichment hit
sourcestring"npiregistry.cms.hhs.gov"

JSON examples

Cardiologists in California, 50 providers, no enrichment:

{
"specialty": "cardiology",
"state": "CA",
"maxProviders": 50,
"enrichContact": false
}

Pediatricians in Austin, TX accepting new patients, with enrichment:

{
"specialty": "pediatrics",
"state": "TX",
"city": "Austin",
"maxProviders": 100,
"enrichContact": true,
"acceptingNewPatients": true
}

Dental group practices (organizations) in Florida:

{
"specialty": "dentistry",
"state": "FL",
"npiType": "Organization",
"maxProviders": 200,
"enrichContact": false
}

Run it from Python (Apify SDK)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nexgendata/doctor-directory-lead-finder").call(run_input={
"specialty": "orthopedic surgery",
"state": "NY",
"maxProviders": 250,
"enrichContact": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["npi"], item["firstName"], item["lastName"], item.get("email"))

Run it from cURL

curl -X POST "https://api.apify.com/v2/acts/nexgendata~doctor-directory-lead-finder/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specialty":"dermatology","state":"IL","maxProviders":25,"enrichContact":true}'

FAQ

1. How fresh is NPI Registry data? CMS updates the public NPI Registry weekly. lastUpdated on each record shows the most recent provider self-attestation. NPI numbers themselves never change once issued.

2. Why are you honest about a 30–35% email find rate? Because the alternative is lying. Most directory sources don't publish a clean email — we extract from practice contact pages when discoverable. Vendors who promise "95% email coverage" are either selling stale appended data or guessing patterns like firstname.lastname@gmail.com — both of which will get your domain blocklisted within a week.

3. Is this HIPAA-compliant? The actor returns only publicly-listed provider information — no PHI ever touches it. NPI Registry is a federal public record. Healthgrades shows what any patient searching for a doctor would see. Using this output for B2B prospecting is the same regulatory category as buying a LinkedIn list — fully fine.

4. Can I bulk-query an entire state? Yes. maxProviders caps at 1000 per run. For multi-state or full-specialty pulls, run the actor multiple times — the NPI Registry rate limit is generous (we throttle to ~4 req/sec to be a good citizen).

5. Do you cover NPs, PAs, DOs, dentists? Yes — anyone with an NPI. NPs, PAs, midwives, psychologists, chiropractors, optometrists, podiatrists, pharmacists are all supported.

6. What about international providers? US only — NPI Registry is by definition a U.S. federal system. For Canada, UK, Australia, Germany providers, use country-specific medical-council registries (Linear request: tell us which countries you need and we'll spin up sister actors).

7. What's the refund policy when directory enrichment blocks? We charge contact-enriched ($0.05) only when enrichment actually produced data. If Healthgrades returns nothing for a provider, you pay only the base $0.03 provider-returned fee. No charge fired for nothing returned.

8. How does this compare to buying a list from ZoomInfo / Definitive Healthcare? See the comparison table below. Short answer: 1/100th the cost, equivalent NPI-level accuracy, honestly lower email coverage. For 80% of medtech / pharma / SaaS use cases, that trade-off is worth it.

9. Can I filter to providers who opened a new practice recently? Yes — sort the dataset by enumerationDate descending. Providers with recent NPI enumeration dates are likely newer practitioners or have just changed practice settings, both strong buying signals.


How we stack up

FeatureThis actorDoximityDefinitive HealthcareIQVIA OnekeyNPI Registry directHealthgrades
Cost$0.03–$0.18/provider$300+/mo seat$30K+/yr enterpriseenterprise licensefreeconsumer site
US coverage100% (all NPI)~80% physicians100%100%100%partial
NUCC specialty taxonomyyesyesyesyesyesno
Email enrichment~30–35% honest~70% (paid)60–80%80%+nonenone
Bulk exportyes (any size)per-seat limitsyesyesbulk file onlyno
HIPAA-safe scopeyes — public onlyyesyesyesyesyes
API accessyeslimitedyesyesyes (no enrichment)no
Update frequencyweekly (NPI)quarterlyquarterlymonthlyweeklyrolling
Time to first lead5 secondssales cyclesales cyclesales cycleDIY weeksmanual

Sister actors (NexGenData fleet)

Build full B2B lead-gen workflows:


Don't have an Apify account?

Sign up free — $5 free credits, no card required. That's enough to pull ~150 enriched providers and validate the data quality before you commit to a paid plan.


Built by NexGenData. Questions, custom specialties, or international coverage requests: open an issue on the actor's GitHub or reach scrapers@thenextgennexus.com.