NPI Provider Contact Finder avatar

NPI Provider Contact Finder

Pricing

from $0.70 / 1,000 results

Go to Apify Store
NPI Provider Contact Finder

NPI Provider Contact Finder

Find healthcare provider emails and contacts from NPI registry. Generate sales leads with doctor emails, LinkedIn profiles, practice websites. No API key.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

mick_

mick_

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

6

Monthly active users

10 days ago

Last modified

Share

Find doctor emails, practice websites, and social media profiles from the NPPES NPI Registry โ€” no API key required. Search 6M+ US healthcare providers by name, specialty, or organization, then enrich each result with contact data.

Replace $50K+/year databases like IQVIA and Definitive Healthcare with pay-per-use pricing. Data comes from the official NPPES API (daily updates from CMS), not month-old 4GB file dumps.


๐ŸŒŸ Why This Beats the Alternatives

Live NPPES data, not static dumps. Most competitors sell annual database exports. This actor queries the live NPPES API โ€” updated daily by CMS โ€” so you get current licensure status, current addresses, and current specialty classifications.

Contact enrichment included. NPI Registry gives you name and address. This actor goes further: it finds the practice website, scrapes for email addresses, and extracts LinkedIn, Healthgrades, Vitals, and Zocdoc links โ€” all in one run.

Batch search built in. Query 10 specialties across 5 states in one run. Results are deduplicated by NPI number automatically โ€” no spreadsheet merging, no duplicates.

Five modes for every workflow. Search by name, specialty, or organization. Direct NPI lookup. Bulk enrichment from a CSV. Whatever your workflow, there's a mode for it.


๐ŸŽฏ Use Cases

๐Ÿฅ Medical Device & Pharma Sales Reps

Build territory lists without buying a data subscription. Search by specialty and state to get every physician in your territory with contact info, practice address, and phone โ€” ready to import into your CRM.

Example: All interventional cardiologists and cardiac surgeons in Georgia and Florida

{
"mode": "search_by_specialty",
"searchQueriesList": ["Interventional Cardiology", "Cardiac Surgery"],
"state": "GA",
"maxResults": 500,
"enableEmailEnrichment": true,
"enableLinkedInEnrichment": true
}

Run twice โ€” once for GA, once for FL. Or use two separate Actor runs.

Example: Target orthopedic surgeons in a ZIP code cluster

{
"mode": "search_by_specialty",
"query": "Orthopedic Surgery",
"city": "Houston",
"state": "TX",
"maxResults": 200,
"enableEmailEnrichment": true,
"enableSocialMediaEnrichment": true
}

๐Ÿงช Clinical Research Organizations (CROs)

Find principal investigators for clinical trials by specialty, location, and institution. Skip the manual CLINICALTRIALS.GOV โ†’ Google โ†’ LinkedIn chain.

Example: Oncologists at academic medical centers in specific states

{
"mode": "search_by_specialty",
"searchQueriesList": ["Medical Oncology", "Hematology & Oncology", "Radiation Oncology"],
"state": "MA",
"enumerationType": "NPI-1",
"maxResults": 300,
"enableEmailEnrichment": true
}

Example: Bulk enrich your existing investigator list

Already have a list of NPI numbers from a previous study? Skip the search entirely:

{
"mode": "bulk_lookup",
"npiNumbers": ["1871538041", "1932102168", "1245319599", "1508943127"],
"enableEmailEnrichment": true,
"enableLinkedInEnrichment": true
}

๐Ÿ“Š Healthcare Marketing Agencies

Build segmented lists for digital campaigns. Target by specialty, geography, and organization type. Get LinkedIn profiles for account-based targeting on social platforms.

Example: Primary care physicians in the Northeast for a telehealth campaign

{
"mode": "search_by_specialty",
"searchQueriesList": ["Family Medicine", "Internal Medicine", "General Practice"],
"state": "NY",
"maxResults": 1000,
"enableLinkedInEnrichment": true,
"enableSocialMediaEnrichment": true
}

Example: Hospital systems and health networks in a metro area

{
"mode": "search_organizations",
"query": "Medical Center",
"city": "Chicago",
"state": "IL",
"enumerationType": "NPI-2",
"maxResults": 100,
"enableEmailEnrichment": true
}

๐Ÿค– AI Agents & Automated Pipelines

This actor is agent-ready. Structured JSON output with consistent schemas makes it a clean data source for AI workflows:

  • LLM pipelines: Wire as a tool call โ€” your agent queries for providers matching criteria, gets back structured records, and reasons over them
  • CRM automation: Trigger this actor from a Zapier/Make workflow to enrich new leads automatically
  • RAG knowledge base: Index provider records into a vector store for semantic retrieval
  • Lead scoring agents: Combine specialty, practice size (inferred from organization type), and enriched contact data for automated scoring

Example: Agent-friendly query โ€” specific providers by last name across states

{
"mode": "search_providers",
"searchQueriesList": ["Patel", "Kumar", "Sharma"],
"state": "NJ",
"maxResults": 200,
"enableEmailEnrichment": true
}

๐Ÿ”ฌ Healthcare Data Scientists

Access structured provider data without managing large NPPES file downloads (the full NPPES export is 4GB+). Pull exactly what you need via API.

Example: Map all licensed psychiatrists by state for a mental health access study

{
"mode": "search_by_specialty",
"query": "Psychiatry",
"enumerationType": "NPI-1",
"maxResults": 1000
}

Example: Get full record for a specific NPI number

{
"mode": "get_provider",
"npiNumber": "1871538041",
"enableEmailEnrichment": true,
"enableSocialMediaEnrichment": true
}

๐Ÿ“ฆ What You Get

Each output record is a ProviderRecord with the following data:

Core Identity

FieldDescription
npi_number10-digit NPI identifier
enumeration_typeNPI-1 (individual) or NPI-2 (organization)
first_name, last_nameProvider name
credentialDegrees and credentials (MD, DO, NP, PA, etc.)
organization_nameOrganization name (NPI-2 records)
statusActive / Deactivated
primary_specialtyTop taxonomy description (convenience field)

Address & Contact

FieldDescription
addressesArray of MAILING and LOCATION addresses with phone and fax
practice_address_cityCity from primary practice location (convenience field)
practice_address_stateState from primary practice location (convenience field)

Taxonomies & Specialties

FieldDescription
taxonomiesFull array of specialties with code, description, license, state, and primary flag
identifiersDEA numbers, state license numbers, UPIN, and other identifiers

Enrichment (optional)

FieldDescription
contact_enrichment.emailsAll email addresses found on practice website
contact_enrichment.primary_emailBest contact email
contact_enrichment.office_emailOffice/scheduling email
contact_enrichment.billing_emailBilling department email
contact_enrichment.practice_websitePractice website URL
contact_enrichment.linkedin_profile_urlProvider LinkedIn URL
contact_enrichment.healthgrades_urlHealthgrades profile
contact_enrichment.vitals_urlVitals.com profile
contact_enrichment.zocdoc_urlZocdoc booking page
contact_enrichment.facebook_urlPractice Facebook page
contact_enrichment.npi_registry_urlDirect NPI Registry link

๐Ÿ”€ Two Batch Workflows

Batch Search by Specialty or Name

Build a territory list in one run. Pass a list of specialties (or last names, or org names) via searchQueriesList and the actor runs each search, then deduplicates results by NPI number across all queries.

Example: Three specialties, one run

{
"mode": "search_by_specialty",
"searchQueriesList": ["Cardiology", "Oncology", "Neurology"],
"state": "TX",
"maxResults": 500,
"enableEmailEnrichment": true
}

searchQueriesList works with search_providers, search_organizations, and search_by_specialty modes. Takes precedence over the single query field.


Bulk Enrich by NPI Number

Already have a list of NPI numbers? Skip the search and go straight to enrichment.

Path A โ€” Small list: paste directly as a JSON array

{
"mode": "bulk_lookup",
"npiNumbers": ["1871538041", "1932102168", "1245319599"],
"enableEmailEnrichment": true,
"enableSocialMediaEnrichment": true
}

Path B โ€” Large list: upload a CSV via Apify Key-Value Store

  1. Go to Apify Console โ†’ Storage โ†’ Key-Value Stores
  2. Click + Create new store and give it a name
  3. Click + Add record โ†’ upload your .csv file
  4. Find your file in the store โ†’ click the link icon to copy the direct URL

    The URL must start with api.apify.com โ€” not console.apify.com. The console URL is a web page and will not work as a file download.

  5. Set mode to bulk_lookup, paste the URL into the npiFile field, and run

CSV format โ€” use a column named npi, npi_number, or NPI, or list one NPI per row:

npi
1871538041
1932102168
1245319599

All enrichment options work the same in bulk mode.


โš™๏ธ Input Reference

Mode & Search

FieldTypeDefaultDescription
modestringsearch_providerssearch_providers, get_provider, search_organizations, search_by_specialty, bulk_lookup
querystringโ€”Single search term: last name (search_providers), org name (search_organizations), specialty (search_by_specialty).
searchQueriesListarrayโ€”Run multiple searches in one go, deduped by NPI. Takes precedence over query.
npiNumberstringโ€”10-digit NPI for direct lookup (get_provider mode).
npiNumbersarrayโ€”JSON array of NPI numbers (bulk_lookup mode).
npiFilestringโ€”URL to a CSV of NPI numbers (bulk_lookup mode). Must be an api.apify.com URL from Key-Value Store.
firstNamestringโ€”Provider first name filter.
lastNamestringโ€”Provider last name filter.
organizationNamestringโ€”Organization name (search_organizations mode).
taxonomyDescriptionstringโ€”Specialty or taxonomy description (search_by_specialty mode).

Location Filters

FieldTypeDefaultDescription
citystringโ€”Filter by city.
statestringโ€”Two-letter state code (e.g. CA, NY, TX).
postalCodestringโ€”ZIP/postal code filter.
countryCodestringโ€”Two-letter country code. Defaults to US.
enumerationTypestringโ€”NPI-1 (individual providers) or NPI-2 (organizations).

Output

FieldTypeDefaultDescription
maxResultsinteger100Max providers to return (1โ€“1000). Free tier: 25 per run.

Contact Enrichment

FieldTypeDefaultDescription
enableEmailEnrichmentbooleanfalseScrape practice websites for email addresses (office, billing, general).
enableLinkedInEnrichmentbooleanfalseSearch for provider LinkedIn profiles.
enableSocialMediaEnrichmentbooleanfalseExtract Facebook, Twitter, Instagram, Healthgrades, Vitals, and Zocdoc links.
emailEnrichmentTimeoutinteger10Timeout per website scrape (seconds). Lower = faster, may miss some emails.

Advanced

FieldTypeDefaultDescription
requestIntervalSecsnumber0.5Seconds between NPPES API requests.
timeoutSecsinteger30HTTP timeout per request (seconds).
maxRetriesinteger5Max retry attempts on failed requests.

โ“ FAQ

What is an NPI number? A National Provider Identifier โ€” a unique 10-digit ID assigned to every licensed US healthcare provider by CMS. Over 6 million active NPIs in the registry cover physicians, nurses, dentists, therapists, and healthcare organizations.

Is this free to use? The first 25 results per run are free. Subscribe to the actor for unlimited results (up to 1,000 per run).

How does email enrichment work? The actor searches for the provider's practice website via DuckDuckGo, then scrapes that site for email addresses, classifying them as office, billing, or general contact. It also extracts any social media links found on the page. Success depends on whether the practice has a publicly accessible website.

How fresh is the data? The actor queries the live NPPES API directly, which CMS updates daily. You get current provider data, not a static database snapshot.

What's the difference between npiNumbers and npiFile? npiNumbers is for small lists โ€” paste up to a few hundred NPIs directly as a JSON array. npiFile is for large lists โ€” upload a CSV to Apify Key-Value Store and provide the download URL.

Why does npiFile need an api.apify.com URL? console.apify.com URLs load a web page in your browser. The actor needs a direct file download URL to read your CSV. Always use the link icon in Key-Value Store to copy the api.apify.com URL, not the browser address bar.

What enrichment hit rate should I expect? Email enrichment depends on whether the practice has a public website. Solo practitioners typically have lower hit rates than group practices. Expect 40โ€“70% email hit rate for individual providers, higher for organizations. LinkedIn enrichment works best for physicians at academic institutions and large health systems.

Can I search by taxonomy code instead of specialty name? The taxonomyDescription field accepts text descriptions like "Cardiology" or "Orthopedic Surgery". For exact taxonomy code lookups, use the query field in search_by_specialty mode with the code directly (e.g., 207RC0000X for Cardiovascular Disease).