GET /npi/{npi}
NPI Lookup API
Look up any US healthcare provider by NPI. The registry, plus the flags.
Try it
{
"npi": "1881018208",
"valid": true,
"registered": true,
"active": true,
"excluded": false,
"type": "organization",
"name": "Mayo Clinic",
"first": null,
"last": null,
"credential": null,
"specialty": "Multi-Specialty Clinic/Center",
"taxonomy": "261QM1300X",
"address": "200 1st St SW",
"city": "Rochester",
"state": "MN",
"state_name": "Minnesota",
"postal": "55905-0001",
"country": "US",
"phone": "+15072842511",
?deep=true
}1M requests · $20/mo. Get started
What comes back.
npi
The number as folded, digits only. Invalid input still echoes the fold
valid
10 digits and the Luhn check digit with the 80840 prefix holds
registered
The NPI exists in the NPPES registry. null when the number is invalid
active
Not deactivated. null when not registered
deep.deactivated_at
Date CMS deactivated the NPI, YYYY-MM-DD. null when the number is still active or not registered
excluded
On the OIG LEIE exclusion list, matched by NPI only. false is not clearance: many LEIE rows carry no NPI. null when not registered
type
individual or organization
name
Provider name. Organizations ship the legal business name
credential
Credential as the provider registered it (MD, DDS). null for organizations
specialty
Primary taxonomy display name from the NUCC code set
taxonomy
The primary NUCC taxonomy code
address
Practice location street line
city
Practice location city
state
Practice location state code
state_name
State display name
postal
Practice location postal code, ZIP+4 when NPPES has it
phone
Practice location phone, E.164
deep.medicare
In the published Medicare FFS enrollment extract. false is not a clearance. null when not registered or not yet stamped. Paid plans
deep.opt_out
On the CMS opt-out affidavit list, matched by NPI only. false is not clearance. Paid plans
1
Pass the number
Ten digits. Spaces and punctuation fold out. Junk answers valid false, never a 404.
2
Get the provider
Name, credential, specialty, practice address, and phone. active means not deactivated. excluded checks the OIG list by NPI.
3
Deep adds Medicare
Deactivation date, Medicare enrollment, opt-out status, and enrollment specialties. Paid plans.
Coverage
8.4 million US providers. The full published registry.
- 8.4M
- providers in the registry
- Paid deep
- Medicare enrollment
Pass an NPI. Ten digits, spaces and punctuation fold out. Get the checksum verdict and provider record: name, type, credential, primary specialty and taxonomy, practice address, and phone. active says the number is not deactivated. excluded checks the exclusion list by NPI.
Paid deep adds the deactivation date and Medicare enrollment, opt-out status, and specialties. Junk and a failed checksum answer valid: false as a 200. An unknown checksum-valid number answers registered: false. This is provider directory data.
SPEED
How long /npi takes.
Median time to first byte over the last seven days. Warm requests, measured every 30 minutes. Live verification and other request variants can take longer.
US
61ms
EU
132ms
APAC
149ms
LatAm
125ms
ME
110ms
Make your first request.
One key works across the APIs. Copy a request in your language and get JSON back.
curl "https://api.parseapi.com/npi/1881018208" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Parse-Version: 2.0.0"// Example response · 200{"npi": "1881018208", "valid": true, "registered": true, "active": true, "excluded": false, "type": "organization", "name": "Mayo Clinic", "first": null, "last": null, "credential": null, "specialty": "Multi-Specialty Clinic/Center", "taxonomy": "261QM1300X", "address": "200 1st St SW", "city": "Rochester", "state": "MN", "state_name": "Minnesota", "postal": "55905-0001", "country": "US", "phone": "+15072842511" }
API referenceSDKsKeys and authentication
Every response field
Response fields
- npi
- The number as folded, digits only. Invalid input still echoes the fold
- valid
- 10 digits and the Luhn check digit with the 80840 prefix holds
- registered
- The NPI exists in the NPPES registry. null when the number is invalid
- active
- Not deactivated. null when not registered
- excluded
- On the OIG LEIE exclusion list, matched by NPI only. false is not clearance: many LEIE rows carry no NPI. null when not registered
- type
- individual or organization
- name
- Provider name. Organizations ship the legal business name
- first
- First name. null for organizations
- last
- Last name. null for organizations
- credential
- Credential as the provider registered it (MD, DDS). null for organizations
- specialty
- Primary taxonomy display name from the NUCC code set
- taxonomy
- The primary NUCC taxonomy code
- address
- Practice location street line
- city
- Practice location city
- state
- Practice location state code
- state_name
- State display name
- postal
- Practice location postal code, ZIP+4 when NPPES has it
- country
- Practice location country, ISO 3166-1 alpha-2
- phone
- Practice location phone, E.164
Deep fields
- deep.deactivated_at
- Date CMS deactivated the NPI, YYYY-MM-DD. null when the number is still active or not registered
- deep.medicare
- In the published Medicare FFS enrollment extract. false is not a clearance. null when not registered or not yet stamped. Paid plans
- deep.opt_out
- On the CMS opt-out affidavit list, matched by NPI only. false is not clearance. Paid plans
- deep.enrollments
- Enrollment rows (type, specialty, state). Empty when medicare is false. null when unstamped or not registered. Paid plans
Build with NPI
All tutorials →QUESTIONS
- What if it is not an NPI?
- valid: false as a 200. npi still echoes the folded digits. Same as a typo in a form field.
- What does registered: false mean?
- The checksum holds but NPPES has no record of the number. Record fields ship null.
- What does active: false mean?
- The NPI was deactivated. Paid deep.deactivated_at gives the published date. Name and address may be null when the registry blanks them.
- Where does the data come from?
- The response contains publicly published NPPES provider directory records.
- Is an NPI proof of licensure?
- No. An NPI is not proof of licensure. CMS says so and so do we. Licenses belong to the state boards.
- What is excluded?
- Whether the NPI is on the OIG LEIE exclusion list, matched by NPI only. excluded: false is not clearance. LEIE rows without an NPI cannot be matched by number.
- What does deep add?
- Deactivation date and Medicare enrollment detail: medicare, opt_out, and enrollments with type, specialty, and state. Included on paid plans. These fields do not establish licensure or clearance.
- Does NPI need a separate key?
- No. Use the same ParseAPI key and request pool as your other lookups. Your team's rate limit applies.
- Can I search by name?
- No. Pass the number. A claim, a referral, and a prescription already carry it.
- What does it cost?
- One pooled request on every plan. Paid deep adds deactivation date and Medicare enrollment without a separate meter.
Know the provider.
Provider identity on every plan. Medicare details on paid plans.
Start includes 1M API requests a month for $20/mo.