Healthcare Provider Verification — NPPES/NPI
Credentialing services, insurance networks, and patients currently verify
a healthcare provider's NPI (National Provider Identifier) status by
hand, on CMS's own NPPES lookup. Free, public, keyless. This turns a
name/NPI/organization search into a verified provider record: active
status, specialty, and practice address.
Input
{ "providers": [{ "organizationName": "Mayo Clinic" }] }
Query by npi, organizationName, or firstName/lastName — one
identifying field is required per entry; state is optional to narrow results.
Sample output
{
"npi": "1881018208",
"enumerationType": "NPI-2",
"name": "MAYO CLINIC",
"isOrganization": true,
"status": "A",
"isActive": true,
"practiceCity": "ROCHESTER",
"practiceState": "MN"
}
Typical uses
- Credentialing / provider network verification — confirm an NPI is
active and matches the claimed specialty before onboarding.
- Insurance network validation — bulk-check a provider roster's NPI status.
- Patient due diligence — verify a provider's credentials before a visit.
- Fraud/compliance screening — a deactivated or mismatched NPI is a
real signal worth investigating.
⚠️ Read before you act
- Covers both individual (NPI-1) and organization (NPI-2) providers —
isOrganization tells you which; a search by organization name naturally
returns NPI-2 records, a name search returns NPI-1.
isActive reflects NPPES's own current status — deactivation isn't
necessarily fraud; providers retire, close practices, or merge
organizations. Treat it as a signal to investigate, not a verdict.
- The practice address is the LOCATION address, not the mailing
address, when both are on file — the one relevant to "where do they
actually practice."
Related actors
- Nonprofit Financial Lookup — the same official-registry-verification
pattern, for nonprofit financial data instead of healthcare credentials.
- Financial Complaint Monitor — another regulated-entity lookup, for
CFPB financial company complaints.
Limitations
- Healthcare Provider Verification reads only what its sources publish publicly. Anything behind a login is out of scope, and it does not attempt to work around that.
- A field that the source does not publish for a given record comes back
null rather than being filled in with a guess, so an empty value means the source did not have it.
- Output quality is bounded by the source. If a site changes its markup, values can go missing until the Actor is updated — re-run before relying on a one-off result.
- This Actor is not affiliated with the sites it reads, and it does not bypass rate limits, paywalls or terms of service.
Fields
| Field | Type | What it holds |
|---|
matchedQuery | string,null | The query this row matched. |
npi | string,null | National Provider Identifier. |
enumerationType | string,null | How the identifier was assigned. |
name | string,null | Display name as the source writes it. |
isOrganization | boolean,null | Whether the address belongs to an organisation rather than a person. |
status | string,null | Outcome recorded for this row. |
isActive | boolean,null | Whether the record is still active at the source. |
credential | string,null | Credential this row describes. |
primarySpecialty | string,null | Primary Specialty as recorded for this row. |
licenseNumber | string,null | Licence number. |
licenseState | string,null | State that issued the licence. |
practiceCity | string,null | City where the practice is located. |
practiceState | string,null | State where the practice is located. |
practicePhone | string,null | Phone number for the practice. |
enumerationDate | string,null | Date the identifier was assigned. |
lastUpdated | string,null | ISO 8601 timestamp of the last change seen. |
verdict | string,null | The Actor's conclusion for this row, stated in words. |
Pricing
The price and any free trial are shown in the pricing panel on this page. Compute is billed from your prepaid Bytewells credits.