Pricing
Pay per event + usage
Physician Directory + NPI Cross-Reference
Cross-reference NPI Registry plus state medical license boards into one verified physician contact record. Built for healthcare M&A brokers, PE rollups, physician recruiters. Pay per result.
Pricing
Pay per event + usage
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
a month ago
Last modified
Categories
Share
Healthcare M&A volume cleared $1B+ in 2025 across PE rollups (TUSK Practice Sales, Practice Transitions Group). DSO deal flow alone was 10+ practices/month in September 2025. Every one of those buyers needs the same thing: a clean physician contact list with NPI, specialty, primary practice address, license number, and a working email pattern. This actor returns that record on demand at per-call pricing.
Why this exists
Definitive Healthcare sells the physician directory market at $25,000-$100,000 per seat per year. That's the price umbrella for every healthcare-M&A team, PE rollup, MedSpa broker, and physician-recruitment firm that needs the same dataset. The NPI Registry has been free public data from CMS since 2007. Healthgrades, Vitals, and ZocDoc are public-web. State medical license boards are searchable in every US state. The data is there. Nobody has wired it into a single per-call API that returns one normalized record.
This actor does that. NPI Registry as the spine. State medical license board cross-reference for live status verification. Email guess generator for outreach. One call, one record, $0.05-$0.25 per row depending on enrichment level.
How it works
/search?specialty=&state=/enrich?npi=||v v+----------+----------++--------+----------+|NPI Registry CMS||NPI Registry CMS||(public, free)||(single lookup)|+----------+----------++--------+----------+||| normalized | normalizedv vresults[] npiRecord||| v|+--------+----------+||CA Med Board |||(search.dca.ca)||| via VPS Go TLS||+--------+----------+|||| license + status| v|+--------+----------+|| Email Guesser |||(6 patterns x 3||| domain seeds)||+--------+----------+v v+------+------++--------+--------+| basic record || enriched record || $0.05/row || $0.25/row |+-------------++-----------------+
Endpoints
| Method | Path | Description | Charge |
|---|---|---|---|
| GET | / | Service info, pricing, source list | none |
| GET | /health | Liveness check | none |
| GET | /search?specialty=&state=&city=&limit= | Search NPI Registry, return basic records | $0.05 per result |
| GET | /enrich?npi= | Single NPI -> full enrichment | $0.25 per record |
| GET | /enrich?name=&state= | Name + state -> NPI lookup -> enrichment | $0.25 per record |
| POST | /enrich/bulk body {npis:[...]} (max 25) | Bulk enrichment | $0.25 per record |
Quick start
# Search by specialty + statecurl-s"https://george-the-developer--physician-directory-npi.apify.actor/search?specialty=Cardiology&state=CA&limit=10"\-H"Authorization: Bearer YOUR_APIFY_TOKEN"# Enrich a single NPIcurl-s"https://george-the-developer--physician-directory-npi.apify.actor/enrich?npi=1710071717"\-H"Authorization: Bearer YOUR_APIFY_TOKEN"# Bulk enrich (max 25 NPIs)curl-s-X POST "https://george-the-developer--physician-directory-npi.apify.actor/enrich/bulk"\-H"Authorization: Bearer YOUR_APIFY_TOKEN"\-H"Content-Type: application/json"\-d'{"npis":["1710071717","1528076718","1962778159"]}'
Sample response
{"ok":true,"record":{"npi":"1710071717","name":"ABDUL SATTAR ABBASI","credentials":"MD","specialty":"Internal Medicine, Cardiovascular Disease","specialty_group":"Other","taxonomy_code":"207RC0000X","primary_address":{"street":"1045 ATLANTIC AVE, SUITE 912","city":"LONG BEACH","state":"CA","zip":"908133408","phone":"562-437-2801","fax":""},"license":{"state":"CA","license_number":"A24632","status":"unknown","note":"Cross-referenced from NPI taxonomy. Verify live status at search.dca.ca.gov if critical."},"email_guesses":[{"email":"abdul.abbasi@abbasimd.com","verified":false},{"email":"aabbasi@abbasimd.com","verified":false},{"email":"abdul.abbasi@abbasiinternalmedicine.com","verified":false}],"enumeration_date":"2010-06-01","last_updated":"2024-12-01","status":"A","source":{"npi_registry":"https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1710071717","state_license_board":"https://search.dca.ca.gov/results?BOARDCODE=8002&LICENSETYPE=A&..."}}}
Pricing
| Event | Price | What you get |
|---|---|---|
apify-actor-start | $0.10 per run (per GB memory) | Standby instance warm |
physician-discovered | $0.05 per record | NPI + name + specialty + primary practice address (search results) |
physician-enriched | $0.25 per record | Full enrichment: NPI + state license cross-reference + 6 email guesses + all taxonomies + other identifiers |
For comparison: Definitive Healthcare seats run $25K-$100K/yr. At $0.25/record, you can pull 100,000 enriched physician records for $25,000 once. That's the price umbrella this is sitting under.
Use cases
- PE healthcare rollups building target lists across states for cardiology, orthopedics, dermatology, primary care, dental practice acquisition
- MedSpa M&A brokers identifying medical directors and specialty practice owners for M&A outreach
- Physician recruitment firms building active-license verified provider lists by specialty + region
- Medical sales reps prospecting providers in target specialties (device manufacturers, pharma, RCM)
- Healthcare research firms academic and competitive-intel firms running provider-density analyses
- Provider credentialing teams verifying NPI + license + practice address in one call
Honest tradeoffs (v1)
- State license live status: v1 wires CA Medical Board (search.dca.ca.gov) live cross-reference. CA-MBC sits behind an F5 WAF that intermittently blocks Chrome-fingerprinted requests. When the live check returns 0 rows, the actor falls back to the NPI Registry taxonomy license number with
status:"unknown"and a note. FL, NY, TX coming in v2. - Healthgrades / Vitals / ZocDoc: deferred to v2. Healthgrades and Vitals require Cloudflare bypass, ZocDoc requires Datadome bypass. Adding them is the work for v2 once the v1 dataset proves the demand.
- Email guessing: the 6 patterns generated are unverified guesses. The note on each guess says so. Pair them with my Email Validator API for SMTP-grade verification before sending outreach.
- NPI Registry specialty filter: the public CMS API does substring match on
taxonomy_description. A search for "Cardiology" returns Cardiologist MDs (taxonomy207RC0000X) plus pharmacists with cardiology certs (1835C0206X). Filter bytaxonomy_codeprefix207RCfor MD-only cardiologists. - Org NPIs (NPI-2): included in search but enrichment treats them as the legal entity. For physician-level outreach, filter by
enumeration_type:"NPI-1".
Test-payload short-circuit
Pass NPI 1234567890 or 0000000001 or 9999999999, or name John Doe Test, and the actor returns {ok:true, mocked:true} with no charge. Use these for CI smoke tests without burning credit.
curl-s"https://george-the-developer--physician-directory-npi.apify.actor/enrich?_test=true&npi=0000000001"\-H"Authorization: Bearer YOUR_APIFY_TOKEN"# {"ok":true,"mocked":true,"reason":"test-payload short-circuit, NPI Registry skipped"}
More from this developer
- Email Validator API โ pair with email guesses for SMTP verification ($0.002 per check)
- Domain WHOIS Lookup โ pull practice domain registration ($0.005 per domain)
- Company Enrichment API โ full company profile from a domain ($0.01 per company)
- Obituary Life-Insurance Lead Scraper โ sister actor for final-expense insurance prospecting
- Funded Startup Tracker โ TC RSS + SEC EDGAR fusion for VC outreach
- ATS Hire-Trigger Intent Scraper โ Greenhouse + Lever + Ashby intent signals
- Shopify DTC Brand Discovery โ DTC brand finder + Klaviyo tech-stack detection
Built by George The Developer. Source-of-record at github.com/the-ai-entrepreneur-ai-hub/physician-directory-npi-docs.
