GET /npi/{npi}

NPI Lookup API

Look up any US healthcare provider by NPI. The registry, plus the flags.

Try it

Example response/npi/1881018208
{
  "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

See live status →

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.