US Healthcare Organization Data — NPI Registry (NPPES)
Pricing
$4.00 / 1,000 company records
US Healthcare Organization Data — NPI Registry (NPPES)
Look up US healthcare organizations and providers in the official NPPES NPI registry by name, NPI number, state or taxonomy. Returns NPI, legal and doing-business-as names, taxonomy specialty, licence numbers, practice and mailing addresses, phone and authorized official.
Pricing
$4.00 / 1,000 company records
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
US Healthcare Organization Data — NPI Registry (NPPES) 🏥
foXLabs US registry-data series: Pharma Companies (Drugs@FDA) · Device Manufacturers (FDA)
🎉 Turn the US National Provider Identifier registry into clean, structured healthcare-organization data — no login, no API key, one row per organization. Built for medical-device & pharma sales, healthcare recruiters, and credentialing / provider-network / claims-integrity teams.
🔍 What is the US Healthcare Organization Data — and when should you use it?
Every US entity that bills for healthcare must hold a National Provider Identifier. Give this actor an organization name (Mayo Clinic) or a 10-digit NPI (1881018208) and it returns matching organizations — name, NPI, taxonomy/specialty, practice address, phone, the authorized official (a named decision-maker), mailing address and practice-location count — as clean rows you can filter, export or feed to an AI agent.
Use it when you need: every hospital, clinic, lab, pharmacy or group practice matching a name; a specialty-targeted list by taxonomy and state; a recruiter or sales list with a named contact; or resolving a known NPI to its organization.
Use something else when: you need an individual clinician roster at scale (set enumerationType to NPI-1), or firmographics NPPES doesn’t hold such as revenue or tax id — pair this with a firmographic actor from Fox Labs.
🤖 Use with AI agents
Already on the Apify MCP server? Ask for this Actor by name: foxlabs/npi-healthcare-organization-data.
Your agent can pay for its own runs. This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — no Apify account or API token of its own. Billing is the same either way: per delivered record, never for errors.
Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want to pull data using the Apify Actor `foxlabs/npi-healthcare-organization-data`.Input: `queries` is a list of organization names or 10-digit NPI numbers. `maxResultsPerQuery` caps rows per query (default 50). Optional `state` and `enumerationType` (NPI-2 organizations, NPI-1 individuals, or any).Start with:{ "queries": ["Mayo Clinic"], "maxResultsPerQuery": 50 }Ask me what to look up, run the Actor, then summarise the rows as a table.
Things you can ask your agent for:
- "Pull every Mayo Clinic organization and group them by specialty."
- "List the clinical labs in Ohio with a named authorized official."
- "Resolve NPI 1881018208 to its organization, address and taxonomy."
The machine-readable API, MCP config and OpenAPI definition live at apify.com/foxlabs/npi-healthcare-organization-data.md.
📋 Overview
Everything you need to turn the NPPES NPI Registry — CMS’s official, keyless JSON API into clean, structured data — in one actor, with no login, cookies or API key.
Why teams pick this actor:
- ✅ Whole registry, one call — name or NPI in, matching organizations out, with a named decision-maker.
- 🎯 Relevance-ranked — a name search leads with the organization actually called that, not a firm that merely lists it as a former name.
- 🧭 Specialty-native — taxonomy code + description on every row; filter by state.
- 🧹 No empty-promise columns — only fields NPPES actually carries; the decision-maker is a real
authorizedOfficialobject. - 💰 Pay only for results — per-row pricing, empty/failed lookups never billed.
- 🤖 Agent-ready — MCP + x402 agentic payments.
✨ Features
- 🔍 Name or NPI lookup — organization-name search (relevance-ranked) or exact 10-digit NPI.
- 🏥 Full organization profile — name, status, practice + mailing address, phone, practice-location count, DBA names.
- 🧑💼 Decision-maker — the authorized official’s name, title and phone where the registry lists one.
- 🧬 Taxonomy — primary + all specialty taxonomies with code, description and license.
- 📦 Clean export — deduplicated camelCase rows, ready for CSV/Excel/JSON.
🎬 Quick Start
curl -X POST "https://api.apify.com/v2/acts/foxlabs~npi-healthcare-organization-data/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{ "queries": ["Mayo Clinic"], "maxResultsPerQuery": 50 }'
🚀 Getting Started (3 steps)
- Choose your targets — organization names (
Mayo Clinic,LabCorp) or 10-digit NPIs. - Set the cap —
maxResultsPerQuerylimits rows per query (default 50); addstateto narrow. - Run and export — get a clean dataset as JSON, CSV or Excel.
📥 Input
{"queries": ["Mayo Clinic", "LabCorp", "1881018208"],"maxResultsPerQuery": 50,"state": "OH","enumerationType": "NPI-2"}
| Field | Type | Description |
|---|---|---|
queries | array | Organization names or 10-digit NPI numbers. Numbers are exact lookups; names run a relevance-ranked registry search. |
maxResultsPerQuery | integer | Caps rows per query (default 50, max 200 per NPPES). |
state | string | Optional 2-letter state filter for name searches (e.g. OH). |
enumerationType | string | NPI-2 organizations (default), NPI-1 individuals, or any. |
maxConcurrency | integer | How many queries to fetch at once (default 5). |
includeRaw | boolean | Attach the source’s untouched record under raw. |
📤 Output
One row per record, saved to the dataset. Every row also carries query, scrapedAt, and — when a lookup fails — an error explaining why (never silently dropped, never billed).
| Field | Type | Description |
|---|---|---|
companyName | string | Organization (or individual) name |
registrationNumber | string | The 10-digit NPI — the join key |
status | string | active / inactive |
industry / industryCode | string | Primary taxonomy description + code |
taxonomies | array | All specialties with code, description, license, state |
authorizedOfficial | object | Named decision-maker: name, title, phone |
address / city / postalCode | string | Practice location |
mailingAddress | string | Mailing address where it differs |
phone | string | Practice phone |
doingBusinessAs | array | Other / DBA names |
practiceLocationCount | integer | Number of secondary practice locations |
sourceUrl | string | Public NPPES provider-view URL |
{"companyName": "MAYO CLINIC","registrationNumber": "1881018208","status": "active","industry": "General Acute Care Hospital","industryCode": "282N00000X","authorizedOfficial": { "name": "…", "title": "…", "phone": "…" },"address": "…, ROCHESTER, MN, 55905, US","practiceLocationCount": 0,"sourceUrl": "https://npiregistry.cms.hhs.gov/provider-view/1881018208"}
💼 Use cases
1. Territory + specialty targeting — medical-device / pharma reps sizing accounts by specialty and location.
Input: organization names or a state + enumerationType: NPI-2. Output: organizations by taxonomy + address. Use: build a territory plan with named contacts.
2. Healthcare recruiter sourcing — find employers by type and location with a contact.
Input: names or state filter. Output: organizations + authorizedOfficial. Use: a sourcing list in minutes.
3. Credentialing / network integrity — verify an organization’s NPI, status and taxonomy.
Input: known NPIs in queries. Output: exact organization records. Use: reconcile a provider directory.
🔗 Integration
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('foxlabs/npi-healthcare-organization-data').call({ "queries": ["Mayo Clinic"], "maxResultsPerQuery": 50 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('foxlabs/npi-healthcare-organization-data').call(run_input={ "queries": ["Mayo Clinic"], "maxResultsPerQuery": 50 })for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
Automation (n8n / Zapier / Make): schedule or webhook → HTTP request to the actor API with your queries → handle the JSON dataset → push to a sheet, CRM or dashboard.
📊 Pricing
Pay-per-event: $0.002 per delivered record. Empty or failed lookups are never billed. Bulk queries scale linearly; you pay for the rows you actually get. View current pricing.
❓ FAQ
Do I need an NPPES account, login or API key? No. This reads the public CMS NPPES API — the same registry the government publishes for exactly this purpose.
What do I search by? An organization name (relevance-ranked) or a 10-digit NPI (exact). Set enumerationType to NPI-1 for individual clinicians.
Why did a name return a differently-named organization? NPPES also matches a query against former / "doing business as" names. We rank primary-name matches first, and the matched other-name appears in doingBusinessAs.
How current is the data? Every run queries NPPES live, so results are as fresh as the registry.
Can I export to CSV / Excel / JSON? Yes — directly from the Apify dataset.
🐛 Troubleshooting
- Fewer rows than expected — raise
maxResultsPerQuery(NPPES caps a single query at 200), or drop thestatefilter. - A name returns an unexpected organization — it matched a former/DBA name; check
doingBusinessAs, or search the exact NPI. - No rows for a name — NPPES needs at least two characters and matches on the registered name; try the organization’s legal name or its NPI.
⚠️ Trademark
Independent tool built on the public CMS NPPES NPI Registry. Not affiliated with or endorsed by CMS or any named health system. Organization names and marks belong to their owners and are used for identification only.
⚖️ Is it legal to scrape this data?
This actor reads organization registry data (business, not patient, data) from an official US government API published for public use. Results can still contain personal data (e.g. an official’s name); personal data is protected by the GDPR and similar laws, so only process it with a legitimate basis. See Apify’s blog post on the legality of web scraping.
🤝 Support & contact
- 🌐 Website: data.foxlabs.com.tr
- 📧 Email: info@foxlabs.com.tr
- 🐛 Issues: open a ticket in the Actor’s Issues tab
- 🧠 More clean B2B data actors: Fox Labs on Apify
Changelog
0.2 — 2026-09-06
- Relevance-ranked name search. NPPES matches a query against the legal name and every "other/DBA" name, and returns hits in NPI order — so a firm that merely lists your term as a former name could sort above the organization actually called that. Name searches now rank primary-name matches first (stable within a rank; number lookups stay exact).
- Dropped empty-promise columns. Removed
taxNumber,employees,capital,website,emailandofficers— NPPES never carries them. The decision-maker is delivered in the richerauthorizedOfficialfield instead. - Cleaner prefills. Default examples now return the organization you meant on the first row:
Mayo Clinic,LabCorp,Stanford Health Care, plus a raw-NPI example (1881018208). - Output schema linked in
actor.jsonso the Store renders the Output tab.
0.1
- Initial release: organization and individual-provider lookup from the NPPES NPI Registry by organization name or 10-digit NPI, returning taxonomy, authorized official, practice-location count and mailing address.