NPI Healthcare Provider Lookup — CMS NPPES Registry API avatar

NPI Healthcare Provider Lookup — CMS NPPES Registry API

Pricing

from $2.00 / 1,000 successful lookups

Go to Apify Store
NPI Healthcare Provider Lookup — CMS NPPES Registry API

NPI Healthcare Provider Lookup — CMS NPPES Registry API

Look up any US healthcare provider or organization by NPI number: name, credential, taxonomy/specialty, status, and practice address. Uses CMS's own official NPPES registry, no API key needed. Charged only for NPIs that resolve to a real record.

Pricing

from $2.00 / 1,000 successful lookups

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 minutes ago

Last modified

Share

NPI Healthcare Provider Lookup

Look up any US healthcare provider or organization by NPI number against the CMS NPPES NPI Registry — name, credential, taxonomy/specialty, enumeration status, and practice address. No API key, no scraping — this hits CMS's own official, free public registry API directly.

Features

  • NPI → full provider record. Name (or organization name), credential, enumeration type, status, and enumeration/last-updated dates.
  • Individual & organization NPIs both handled. NPI-1 (individual providers) and NPI-2 (organizations) are parsed into the same consistent shape.
  • Specialty/taxonomy detail. Every taxonomy code on record, with description, primary flag, license number, and state.
  • Practice address & phone. The provider's primary location address and telephone number.
  • Pay only for hits. NPIs that don't resolve to a real record cost nothing — see Pricing.
  • Built for bulk. Feed in thousands of NPIs; concurrency and proxy behavior are both configurable.

How to use NPI Healthcare Provider Lookup — CMS NPPES Registry API

  1. In the Apify Console. Open the actor page and click Start — the items field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~npi-provider-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"items":["1437702123"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"items": ["1437702123", "1234567893"],
"maxConcurrency": 5
}

items is a list of 10-digit National Provider Identifier (NPI) numbers. One dataset row comes back per item. maxConcurrency (default 5, max 20) caps how many NPIs are looked up in parallel; this target has no browser fallback, so a conservative value avoids rate-limit trouble on large batches. proxyConfiguration lets you route through Apify Proxy (residential recommended) if needed.

Output

One row per NPI, for example:

{
"query": "1437702123",
"found": true,
"data": {
"npi": "1437702123",
"enumerationType": "NPI-1",
"name": "Jane A Smith MD",
"status": "active",
"enumerationDate": "2007-05-23",
"lastUpdated": "2021-11-02",
"taxonomies": [
{ "description": "Internal Medicine", "primary": true, "license": "MD123456", "state": "CA" }
],
"primaryAddress": {
"address": "123 Main St",
"city": "Los Angeles",
"state": "CA",
"postalCode": "90001",
"telephone": "3105551234"
}
},
"scrapedAt": "2026-08-20T12:00:00.000Z"
}

An NPI that doesn't exist in the NPPES registry comes back as "found": false with no data — these rows are never charged.

Use cases

  • Provider credentialing verification. Confirm a provider's name, taxonomy, and active status before onboarding.
  • Healthcare directory building. Bulk-enrich a list of NPIs into a searchable provider directory with specialty and location.
  • Claims & billing validation. Verify an NPI on a claim actually resolves to an active, correctly-typed provider (individual vs. organization).
  • Referral network mapping. Pull practice addresses and specialties to map referral relationships by geography.
  • Compliance audits. Spot-check whether NPIs referenced in records are still active and match the expected name/taxonomy.

Pricing

$4 per 1,000 results, plus a $0.00005 start fee. Misses (found:false) are never charged.

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~npi-provider-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"items":["1437702123"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~npi-provider-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"items":["1437702123"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~npi-provider-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"items":["{{value}}"]}, mapping the row's value into the items array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "NPI Healthcare Provider Lookup | Apify" — the agent will find and run this actor.

FAQ

What counts as "not found"? The NPPES API returns result_count: 0 for any NPI it doesn't recognize. This actor treats that (or a malformed response) as not found — no charge.

How are individual and organization NPIs different? NPI-1 records (individuals) return a name built from first/middle/last name plus credential; NPI-2 records (organizations) return the organization name instead. Both are normalized into the same name field, with enumerationType telling you which kind you got.

Which address is returned? The provider's LOCATION-purpose address (practice address) is preferred; if that's missing, the first address on file is used instead.

Does status reflect deactivation? Yes — CMS's own status code is normalized to "active" when the record is active; any other status code is passed through as-is.

How fresh is the data? Live — every run queries the NPPES registry directly, not a cached snapshot, so status and taxonomy reflect what's currently on file.

What proxy should I use? Apify Proxy is enabled by default; NPPES's public API is generally permissive, but residential proxies are available if you see blocks on large runs.