NPI Registry API for NPI lookup, NPPES API & provider search
The NPI Registry API gives developers real-time, programmatic access to the NPPES National Provider Identifier database — look up any active NPI, search healthcare providers by name, taxonomy, or location, and retrieve Medicare enrollment data as clean JSON.
Free trial · 100 requests/day · no credit card required
GET /api/v1/findbyNPIId?NPIId=1053500652
{
"npi": 1053500652,
"status": "success",
"org_name": "LEVEL HOME HEALTH INC.",
"taxonomy_desc": "Agencies:Home Health",
"in_pecos": "Y",
"in_leie": "N"
}
National Provider Identifier (NPI) API
The National Provider Identifier API provides real-time access to NPPES provider records — taxonomy classifications, practice locations, Medicare enrollment data, PECOS and LEIE indicators, and provider verification information — through a simple REST interface.
Everything you need from the NPI registry
One REST API for NPI lookup, provider search, and enriched NPPES data — built to drop into your product.
NPI Lookup API
The NPI lookup API retrieves complete provider details for any 10-digit National Provider Identifier — legal name, credentials, primary taxonomy, practice and mailing addresses, authorized official, and enrollment status, powered by live NPPES data.
NPI Search API
The NPI search API queries the provider database by name, organization, taxonomy code, specialty, city, state, or ZIP. Filter and paginate to find every matching individual or organizational provider — ideal for directories and credentialing.
NPI Database API
The NPI database API gives your application programmatic access to NPPES records through simple REST calls — power lookups, directories, and record validation. This is the NPI registry lookup API built for product integration.
Enriched provider data
Every response can include Medicare enrollment, PECOS and LEIE flags, taxonomy, and similar-provider suggestions alongside core NPPES fields — not just the raw registry record.
Real-time & current
Results are powered by NPPES data updated weekly, so the NPI, taxonomy, address, and enrollment details you receive stay in sync with the official source.
Simple REST + JSON
Clean, well-documented JSON responses and straightforward API-key authentication — drop the NPPES API into any stack in minutes, with an interactive console to test live.
NPPES API vs. our NPI API
The free NPPES API at npiregistry.cms.hhs.gov is excellent for light, occasional use, but it is rate-limited and caps the number of records per request. Our NPI API is built for teams that need reliability:
- Built for programmatic integration rather than manual NPI checks.
- Enriched data — Medicare enrollment, PECOS and LEIE flags, taxonomy, and similar-provider suggestions alongside core NPPES fields.
- Consistent, well-documented JSON responses that are easy to parse.
- Simple API-key authentication with a free trial to get started.
Read: NPPES API vs. NPI Registry API — which should you use? →
Looking for the CMS NPI Registry API?
Many developers search for the official CMS NPI Registry API — here is how it relates to ours.
The official CMS NPI Registry API
The official CMS NPI Registry API at npiregistry.cms.hhs.gov
provides free, public access to the NPPES National Provider Identifier
database, updated weekly by CMS. It is ideal for light, occasional lookups.
Our NPI Registry API — a commercial alternative
Our NPI Registry API is an alternative built for commercial applications that need enriched provider data — Medicare enrollment, PECOS indicators, and LEIE flags — with consistent JSON responses and an interactive console.
Healthcare Provider Verification API
Verify healthcare providers using NPI, taxonomy, PECOS enrollment, Medicare participation, and location data through a single API — built for credentialing, claims, and compliance checks against the National Provider Identifier database.
Seven endpoints, one API key
The NPI Registry API exposes seven REST endpoints for looking up and searching healthcare provider and Medicare enrollment data.
Base URL
https://restapi.npidataservices.com/api/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /findbyNPIId | Find provider & enrollment data by NPI |
| GET | /findbyPACId | Find provider data by PECOS PAC ID |
| GET | /findbyPACENRLId | Find provider data by PECOS enrollment ID |
| GET | /findOrganizationByName | Find organizations by name & ZIP code |
| GET | /findIndividualProviderByName | Find individuals by first/last name & ZIP |
| GET | /findProvidersByTaxonomyCode | Find by entity type, taxonomy code & ZIP |
| GET | /findProviderByName | Find by org / last & first name & state |
Example NPI lookup API requests & response
Authenticate with your API key, then call any endpoint with a simple GET request. Example cURL requests are on the left; a sample JSON response is on the right.
Request examples
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findbyNPIId?NPIId=1053500652' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findbyPACId?PAC_ID=4284711805' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findbyPACENRLId?ENRLMT_ID=I20171103000690' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findOrganizationByName?ORG_NAME=BAK&ZIP_CODE=45140' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findIndividualProviderByName?FIRST_NAME=JOS&LAST_NAME=THR&ZIP_CODE=34292' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
curl -X GET \
'https://restapi.npidataservices.com/api/v1/findProvidersByTaxonomyCode?ENTITY_TYPE_CODE=2&TAXONOMY_CODE=2085R0202X&ZIP_CODE=31520' \
-H 'accept: application/json' \
-H 'ApiKey: YOUR_API_KEY'
Response
{
"npi": 1053500652,
"status": "success",
"entity_types": ["Organization"],
"organization": [{
"org_name": "LEVEL HOME HEALTH INC.",
"auth_official_first_name": "KELLY",
"auth_official_last_name": "DECKELMAN",
"auth_official_title": "ADMINISTRATOR",
"auth_official_tele": "9492060691"
}],
"taxonomy": [{
"taxonomy_code": "251E00000X",
"taxonomy_desc": "Agencies:Home Health",
"prim_taxonomy_switch": "Y"
}],
"location": [{
"addr_fl": "260 S LOS ROBLES AVE STE 101",
"addr_city": "PASADENA",
"addr_state": "CA",
"addr_post_cd": "911012869",
"addr_type_cd": "PP",
"telephone": "9492060691"
}],
"medicare_enrlmt": [{
"enrlmt_id": "O20080407000727",
"pac_id": "4284711805",
"provider_type_dec": "PART A PROVIDER - HOME HEALTH AGENCY",
"state_cd": "CA"
}],
"entity_type": [{
"in_pecos": "Y",
"in_leie": "N",
"enum_date": "2007-10-18",
"last_update_date": "2022-02-16"
}],
"similar_providers": [
{ "name": "OPTIMUS HOME HEALTH, INC", "npi": 1013674902 },
{ "name": "AUXILIUM HOME HEALTH INC", "npi": 1023609609 },
{ "name": "J AND S HOME HEALTH SERVICES, INC", "npi": 1023374782 },
{ "name": "BETTER CHOICE HOME HEALTH INC", "npi": 1023610128 },
{ "name": "ELITE HOME HEALTH CARE SERVICES INC.", "npi": 1053184770 },
{ "name": "LA COMFORT HOME CARE, INC.", "npi": 1043738156 },
{ "name": "CA HOME HEALTH CARE AGENCY", "npi": 1073256285 }
]
}
Data returned by the NPI API
A single lookup returns far more than a basic registry record. Each response can include:
- Identity — NPI number, entity type (individual or organization), and enumeration date.
- Organization details — legal business name, authorized official name, title, and phone.
- Taxonomy / specialty — taxonomy code and description, with the primary-specialty flag.
- Locations — practice and mailing addresses, city, state, ZIP, phone, and fax.
- Medicare enrollment — enrollment ID, PAC ID, provider type, and state.
- Status flags — PECOS enrollment (
in_pecos) and LEIE exclusion (in_leie). - Related providers — similar-provider suggestions with names and NPIs.
Who uses an NPI Registry API?
Any product that needs accurate, current U.S. healthcare provider data:
- Provider directories and search experiences
- Credentialing and provider-enrollment workflows
- Claims platforms and revenue cycle management (RCM)
- EHR / EMR systems and patient-intake tools
- Payer and value-based-care analytics
- Healthcare SaaS and data-enrichment pipelines
NPI API use cases
- Verify a provider's identity and active status by NPI
- Enrich provider records with taxonomy, address, and Medicare enrollment data
- Validate billing NPIs against PECOS enrollment and LEIE exclusion flags
- Search organizations and individuals by name, taxonomy, or location
- Build provider lookup and directory features into your application
Simple, usage-based pricing
Start free — every plan includes all 7 endpoints and enriched NPPES data (Medicare, PECOS, LEIE). Upgrade only when you need more requests.
| Price plans | Free | Starter | Pro | Enterprise |
|---|---|---|---|---|
| Price | $0free forever | $490per year | $1,490per year | Customcontact sales |
| Requests | 1,000 / month | 25,000 / month | 250,000 / month | Custom |
| All 7 API endpoints | ✔ | ✔ | ✔ | ✔ |
| Enriched data (Medicare, PECOS, LEIE) | ✔ | ✔ | ✔ | ✔ |
| Commercial use | ✔ | ✔ | ✔ | ✔ |
| Overage | — | Pay as you go | Pay as you go | Custom |
| Support | Community | Priority | Dedicated + SLA | |
| Get started |
Every paid plan includes all 7 endpoints and enriched data — tiers differ only by request volume and support.
Frequently asked questions
What is the NPI Registry API?
How is this different from the free NPPES API?
Can I look up a provider by NPI number?
Is there a free trial?
How do I get my API key?
What happens if my payment fails?
What is the NPPES API?
How do I use the CMS NPI Registry API?
Is there an alternative to the CMS NPI Registry API?
How do I cancel my subscription?
- Open the Manage subscription link (in the top nav, or emailed to you with every invoice).
- Click Cancel plan in the portal.
How do I upgrade or downgrade my plan?
Can I reactivate a cancelled subscription?
Interactive API documentation
Sign up for a free API key, then try every endpoint right here in your browser.
An API key is required to try the API — and getting one is free and fast. Sign up for a free trial and your API key arrives by email within seconds. Then test any endpoint right here in your browser:
- Click the Authorize button below and paste in your API key.
- Expand any GET endpoint and click Try it out.
- Edit the request parameters, then press Execute.
- View the live provider data returned in the response body.
Need test values? Download the sample data — it provides ready-to-use request parameters so you can try the REST APIs immediately.
Download Sample Data