NPI Provider Registry - US Doctors and Organisations
Pricing
from $1.00 / 1,000 results
NPI Provider Registry - US Doctors and Organisations
Search the official US National Provider Identifier registry as flat rows - name, credential, specialty, address and status. Free public CMS API.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
NPI Provider Registry — US Doctors and Organisations
Searches the US National Provider Identifier registry — the CMS directory of every provider issued an
NPI — and returns one flat row per provider: name, credential, gender, status, address and specialty.
The CMS API is public, so no key is needed. The NPI itself is carried on every row inside the id
field, prefixed with npi:.
How to use
- Give at least one filter: a two-letter
state, ataxonomy(specialty), alastName, anorganizationName, or anenumerationTypeofNPI-1(individual) orNPI-2(organisation). - Set
maxItems(default 500) andmaxPages(default 5). Each request returns up to 200 records. - Run the Actor. Rows land in the default dataset, and
SUMMARYreports the row count, the stop reason and whether the result was truncated.
Inputs
| Field | What it does | Default |
|---|---|---|
state | Two-letter US state, sent as state, e.g. NY. | none |
taxonomy | Specialty text, sent as taxonomy_description, e.g. Cardiovascular Disease. | none |
lastName | Individual provider's family name, sent as last_name. | none |
organizationName | Organisation name, sent as organization_name. | none |
enumerationType | NPI-1 for individuals or NPI-2 for organisations, sent as enumeration_type. | none |
maxItems | Hard row cap. The runner also refuses to go above 20,000. | 500 |
maxPages | Hard request cap, 200 records per request. The runner also refuses to go above 200. | 5 |
{"state": "NY","taxonomy": "Cardiovascular Disease","maxItems": 50}
Output
One row per provider record.
| Field | Meaning |
|---|---|
enumerationType | NPI-1 for an individual, NPI-2 for an organisation. |
firstName | Given name (basic.first_name). Empty for organisations. |
lastName | Family name (basic.last_name). Empty for organisations. |
organizationName | Organisation name (basic.organization_name). Empty for individuals. |
credential | Credential suffix as recorded, e.g. MD, DO, NP. |
gender | Gender code as recorded (M or F), not translated. |
status | The register's status code (basic.status); A means active. |
lastUpdated | The date the register last changed the record (basic.last_updated). |
address1 | First line of the first address (addresses[0].address_1). |
city | City of that address. |
state | State of that address. |
postalCode | Postal code of that address, as published. |
taxonomy | Description of the first specialty (taxonomies[0].desc). |
taxonomyCode | Code of that first specialty (taxonomies[0].code), from the NUCC code set. |
Every row also carries id (npi: followed by the 10-digit NPI), source (npi-registry) and
scrapedAt (an ISO timestamp for the run); the first is the identifier, the last two are added by the
runner. Absent values are dropped from the row, so an organisation simply has no firstName key.
Limitations
- At least one search criterion is required. With every filter blank the CMS API rejects the query, and the run stops with an error instead of returning rows.
- There is no
numbercolumn. The NPI is the row identifier: it appears asid, prefixed withnpi:, e.g.npi:1234567890. - Only the first address is mapped. The register labels addresses as practice location or mailing address, and this Actor takes whichever one is listed first, so it may be a mailing address.
- Only the first taxonomy is mapped. A provider with several specialties returns one, and it is not guaranteed to be the one the register marks as primary.
- The registry is a directory, not a licence check. An active NPI means the provider is enrolled for identification; it is not evidence of a current state licence or of competence.
- Names are as recorded — often in capitals, with no normalisation of punctuation or spacing.
- Paging is 200 records per request. With the default
maxPagesof 5, a run stops at about 1,000 rows even when the query matches more, so raise the cap for broad searches. - No financial, ownership or affiliation data is returned. The dataset is the NPI record only.
Why this is different
This Actor is different because it queries the official CMS NPI registry directly — no search page is
rendered and no key is issued or rotated. Each row is identified by the NPI itself, a number that is
never reused, so output can be joined across runs and with other provider data. Absent values are
omitted rather than blanked, the output is sorted deterministically, and every run writes a SUMMARY
record naming why it stopped, so a capped result is visible as capped.
FAQ
What exactly is an NPI? A 10-digit identifier CMS issues to US healthcare providers. NPI-1
records are individuals; NPI-2 records are organisations. Numbers are never reassigned.
Do I need an API key? No. The CMS registry API is public and the Actor sends no credentials.
Can I look up one provider by NPI number? Not through this input set. Search by last name and
state, and the NPI comes back in id.
Why does a provider show only one address and one specialty? Because only the first entry of each list is mapped; the register can hold several.
Does an active status mean the doctor is licensed? No. Status A means the record is active in
the NPI registry, which is an enrolment directory, not a licensing board.
Pricing and limits
The price is shown on the Actor's Apify pricing panel; billing is per event under Apify's
pay-per-event model. Each run is bounded by maxItems (default 500, hard-capped at 20,000) and
maxPages (default 5, hard-capped at 200), with up to 200 records per request. When a limit stops the
run before the query is exhausted, SUMMARY.truncated is true and SUMMARY.stopReason names the
limit.