TL;DR
The NPPES (National Plan and Provider Enumeration System) API from CMS lets you look up any US healthcare provider by their National Provider Identifier (NPI) number. Returns name, address, taxonomy (specialty), license information, and practice location. This is official US government data covering every licensed doctor, nurse, dentist, therapist, clinic, and hospital in the country — over 10 million providers. No authentication required for basic lookups.
Quick start: https://npiregistry.cms.hhs.gov/api/?number=1234567893&version=2.1
No API key needed — just make a request!
How to Use This API
1. Lookup by NPI Number
https://npiregistry.cms.hhs.gov/api/?number=1234567893&version=2.1
2. Search by Name
https://npiregistry.cms.hhs.gov/api/?first_name=John&last_name=Smith&version=2.1
3. Search by City and State
https://npiregistry.cms.hhs.gov/api/?city=Los+Angeles&state=CA&version=2.1
4. JavaScript — Provider Lookup
const npi = '1234567893';
fetch(`https://npiregistry.cms.hhs.gov/api/?number=${npi}&version=2.1`)
.then(r => r.json())
.then(d => {
const p = d.results[0];
console.log('Name:', p.basic.first_name, p.basic.last_name);
console.log('NPI:', p.number);
console.log('Address:', p.addresses[0].address_1, p.addresses[0].city);
console.log('Taxonomy:', p.taxonomies[0].desc);
});
5. Python — Find by Specialty
import requests
resp = requests.get('https://npiregistry.cms.hhs.gov/api/', params={
'taxonomy_description': 'Internal Medicine',
'city': 'Chicago',
'state': 'IL',
'limit': 5,
'version': '2.1'
})
for provider in resp.json()['results']:
basic = provider['basic']
print(f"{basic.get('first_name', '')} {basic['last_name']} — {provider['number']}")
https://npiregistry.cms.hhs.gov/api/?number=1234567893&version=2.1
API Details
- API URL
https://npiregistry.cms.hhs.gov/api- Documentation
- npiregistry.cms.hhs.gov
- Category
- Health
- Authentication
- Not Required
- Geographic Coverage
- USA
Frequently Asked Questions
- Do I need an API key?
- No, the NPPES NPI Registry API is a free public government service with no authentication required.
- What is an NPI number?
- The National Provider Identifier (NPI) is a 10-digit unique identifier for US healthcare providers, required by HIPAA for electronic transactions.
- Can I search by taxonomy (specialty)?
- Yes, use the
taxonomy_descriptionparameter to search by provider type like "Internal Medicine", "Pediatrics", "Physical Therapist", etc. - How do I paginate through results?
- Use
limit(default 10, max 50) andskipparameters. The response includesresult_countfor total matching results. - What address types are available?
- Providers can have multiple addresses: primary practice location, mailing address, and other addresses. Each address includes line1, line2, city, state, zip, phone, and fax.
- What format does the response use?
- JSON format with
resultsarray containing provider objects withnumber(NPI),basic(name, gender, etc.),addresses,taxonomies, andidentifiers.
What You Can Build
- Provider directory for healthcare finder apps
- NPI verification tool for medical billing software
- Doctor locator by specialty and location
- Healthcare network analysis tool
- Medical credential verification system