TL;DR
The NPPES NPI Registry API provides access to the official US government database of healthcare providers. Search by NPI number (10-digit unique identifier), provider name, or taxonomy code. Each result contains the provider's legal name, practice address, phone number, taxonomy classification (e.g., "Internal Medicine," "Physical Therapist"), and enumeration date. This is the authoritative source for NPI data — maintained by CMS and used across the US healthcare system for claims processing, credentialing, and provider directories.
Quick start: https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1234567893
No API key needed — just make a request!
https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1234567893
How to Use This API
1. Lookup by NPI Number
https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1234567893
2. Search by Provider Name
https://npiregistry.cms.hhs.gov/api/?version=2.1&first_name=John&last_name=Smith
3. Search by Taxonomy Code
https://npiregistry.cms.hhs.gov/api/?version=2.1&taxonomy_description=Internal%20Medicine
4. Filter by City & State
https://npiregistry.cms.hhs.gov/api/?version=2.1&city=Chicago&state=IL&limit=10
5. JavaScript — Find Provider
async function findNPI(first, last) {
const resp = await fetch(
`https://npiregistry.cms.hhs.gov/api/?version=2.1&` +
`first_name=${first}&last_name=${last}&limit=5`
);
const data = await resp.json();
data.results.forEach(p => {
const addr = p.addresses[0];
console.log(`${p.basic.first_name} ${p.basic.last_name}`);
console.log(`NPI: ${p.number}`);
console.log(`Address: ${addr.address_1}, ${addr.city}, ${addr.state}`);
console.log('---');
});
}
findNPI('Emily', 'Johnson');
6. Python — Bulk Provider Search
import requests
specialties = [
'Internal Medicine',
'Family Medicine',
'Pediatrics',
'Cardiology'
]
for spec in specialties:
resp = requests.get(
'https://npiregistry.cms.hhs.gov/api/',
params={
'version': '2.1',
'taxonomy_description': spec,
'limit': 3
}
)
data = resp.json()
count = data['result_count']
print(f"{spec}: {count} providers found")
Frequently Asked Questions
- What is an NPI number?
- A National Provider Identifier (NPI) is a unique 10-digit identification number for healthcare providers in the United States, required for all HIPAA-covered transactions.
- Do I need an API key?
- No. The NPPES registry is a public government API with no authentication required.
- What data fields are available?
- Provider name, NPI number, taxonomy codes and descriptions, practice addresses (mailing and physical), phone numbers, credentials, and enumeration date.
- How recent is the data?
- The NPPES database is updated daily by CMS. When you query the API, you're getting the current official record on file.
- What's the difference between Individual and Organization NPIs?
- Type 1 NPIs are for individual providers (doctors, nurses). Type 2 NPIs are for organizations (hospitals, clinics, group practices). The response includes
enumeration_typeto distinguish them. - Are there rate limits?
- No official limits, but responsible usage is expected. Include reasonable delays between bulk requests.
API Details
- API URL
https://npiregistry.cms.hhs.gov/api/- Documentation
- npiregistry.cms.hhs.gov
- Category
- Health
- Authentication
- Not Required
- Geographic Coverage
- United States
What You Can Build
- Provider directory for health insurance plan finder tools
- Medical credentialing verification system for hospitals
- Telemedicine platform that validates provider NPIs
- Healthcare claim pre-fill tool for billing departments
- Patient-facing "find a doctor" search application