How to Search the NPI Registry — A Free Guide
What is the NPI registry?
The National Provider Identifier (NPI) registry was created under HIPAA to give every licensed healthcare provider in the United States a unique, permanent 10-digit identifier. CMS began assigning NPIs in 2006. Today the registry contains records for:
- Individual providers: physicians, nurses, therapists, dentists, chiropractors, and more
- Organizations: group practices, hospitals, labs, imaging centers, and other healthcare entities
Enrollment is required for providers who bill Medicare or Medicaid, which means nearly every practicing licensed provider in the U.S. has an NPI on file. The registry is public by law and updated by providers themselves when their information changes.
Four ways to search the NPI registry
1. The official CMS web interface
The simplest starting point is npiregistry.cms.hhs.gov. The search form lets you filter by:
- NPI number (exact lookup)
- Provider name or organization name
- Specialty (taxonomy description)
- City and state
- Entity type (individual or organization)
Results are paginated and exportable as CSV from the web UI. The limitation: no radius search and no programmatic access to the results. For a one-off lookup or a small list, this is the fastest path.
2. The CMS NPI REST API (free, no key required)
The API is documented at npiregistry.cms.hhs.gov/api-page. It accepts GET requests and returns JSON. No API key, no authentication, no rate-limit documentation (be courteous with large batch queries and add delays).
The base URL:
https://npiregistry.cms.hhs.gov/api/?version=2.1&[parameters]
Key parameters:
| Parameter | What it does | Example value |
|---|---|---|
version |
API version — always pass 2.1 |
2.1 |
first_name / last_name |
Provider first or last name (partial match supported) | Smith |
organization_name |
Organization name for Type 2 entities | Memphis+Heart+Group |
number |
Exact NPI number lookup | 1234567890 |
taxonomy_description |
Specialty filter — accepts exact string or prefix wildcard | Dermatology |
city |
City name (exact) | Memphis |
state |
Two-letter state abbreviation | TN |
postal_code |
Zip code (exact or leading digits) | 38103 |
entity_type_code |
1 = individual, 2 = organization | 1 |
limit |
Results per page, max 200 | 200 |
skip |
Offset for pagination | 200 |
taxonomy= parameter (which accepts a numeric NUCC code like 207R00000X) is silently ignored by API v2.1. It returns results as if the parameter weren't there — no error, no warning. Specialty filtering only works through taxonomy_description=. Pass the exact CMS taxonomy description string (e.g., Cardiovascular+Disease, not Cardiology) or a prefix wildcard (Cardiovascular*). This trips up most developers on first contact with the API.
3. Searching by specialty — the correct taxonomy strings
The taxonomy_description value must match the CMS NUCC label, not the
colloquial name. Some specialties match what you'd expect; others don't:
| Common name | Correct taxonomy_description string |
|---|---|
| Cardiologist | Cardiovascular Disease |
| Dermatologist | Dermatology |
| Physical therapist | Physical Therapy |
| Psychiatrist | Psychiatry |
| Orthopedic surgeon | Orthopedic Surgery |
| Family doctor | Family Medicine |
| Neurologist | Neurology |
| OB/GYN | Obstetrics & Gynecology |
| ENT / ear-nose-throat | Otolaryngology |
| Kidney doctor | Nephrology |
Prefix wildcards work: taxonomy_description=Physical* matches
"Physical Therapy," "Physical Medicine & Rehabilitation," and any other taxonomy
that begins with "Physical." Use this when you are unsure of the exact label.
4. Example API queries
# Find dermatologists in Nashville, TN https://npiregistry.cms.hhs.gov/api/? version=2.1 &taxonomy_description=Dermatology &city=Nashville &state=TN &entity_type_code=1 &limit=200 # Look up a provider by NPI number https://npiregistry.cms.hhs.gov/api/? version=2.1 &number=1234567890 # Find psychiatrists in zip code 60601 https://npiregistry.cms.hhs.gov/api/? version=2.1 &taxonomy_description=Psychiatry &postal_code=60601 &limit=200 # Organization-level search: cardiology groups in Texas https://npiregistry.cms.hhs.gov/api/? version=2.1 &taxonomy_description=Cardiovascular+Disease &state=TX &entity_type_code=2 &limit=200
Searching by radius (what the native API can't do)
The CMS API accepts a single zip code via postal_code=, but it
does exact-match filtering — it will not return providers in zip codes surrounding
your target. To search within a radius (e.g., "all cardiologists within 25 miles
of 38103"), you need to:
- Find all zip codes whose centroid falls within N miles of the target zip, using Haversine distance math.
- Query the NPI API once per zip code in that set.
- Deduplicate providers who appear in multiple zip queries.
getdork's Physician Search automates this against a dataset of 33,774 U.S. zip codes. Set a zip and a mile radius — 10, 25, 50, or 100 — and the tool runs the queries and deduplicates results. Free accounts see a preview; Pro accounts see all results with CSV export.
getdork handles the API calls, radius math, and deduplication. Free to preview results; Pro for the full set and CSV export.
Try it free at getdork.com →
What the data is useful for
The NPI registry is the primary free resource for these use cases:
- Medical device and pharmaceutical sales: Build a territory prospect list of licensed specialists in a geographic area. NPI data gives you name, address, phone, and specialty — enough to start a cold outreach sequence.
- Healthcare staffing: Identify individual providers (Type 1) practicing in a specialty in a given market. Filter to entity type = individual to exclude organizations from results.
- Credentialing and verification: Confirm a provider's NPI number and specialty for credentialing, insurance, or referral workflows. The NPI number is the universal identifier — cross-reference it against state license boards for full verification.
- Research and compliance: Public health researchers and compliance teams use the registry to map provider density by specialty and geography, or to verify provider identities in billing records.
What the NPI registry does not contain
The registry is often assumed to be more complete than it is. It does not include:
- Email addresses (not required at enrollment)
- Hospital or health system affiliations (beyond the provider's filing)
- Board certification status (verify via the relevant specialty board)
- Malpractice history or disciplinary actions (check state medical boards)
- Whether a provider is currently accepting patients
Frequently asked questions
Is the NPI registry free to search?
Yes. The CMS NPI registry is a public federal database accessible at no cost at npiregistry.cms.hhs.gov. The REST API requires no API key or authentication. getdork uses the same public API — free tier shows a preview, Pro unlocks the full result set and CSV export.
How do I search the NPI registry by specialty?
Use the taxonomy_description API parameter with the exact CMS taxonomy
label — for example, Dermatology, Physical Therapy, or
Psychiatry. The taxonomy= parameter (numeric NUCC code) is
silently ignored and returns unfiltered results. Prefix wildcards work:
taxonomy_description=Physical* matches all Physical-prefixed specialties.
What information does an NPI record contain?
Each record includes: NPI number, provider name or organization name, credential (MD/DO/NP/etc.), primary practice address, phone number, specialty taxonomy, entity type, and last-updated date. The registry does not include email addresses, hospital affiliations, or board certification data.
What is the difference between NPI Type 1 and Type 2?
Type 1 NPIs are assigned to individual providers — a single physician, nurse, or
therapist. Type 2 NPIs go to organizations — group practices, hospitals, labs.
When building a list of individual doctors, add entity_type_code=1
to your API query to exclude organization records.
Can I search by zip code radius?
Not natively — the CMS API takes a single zip code as an exact filter. To search a radius, you need to enumerate nearby zip codes with Haversine math and query each. getdork does this automatically when you enter a zip and a mile radius in the Physician Search tool.
How current is the NPI registry data?
Providers update their own records when their information changes. There is no fixed refresh cycle from CMS's side. A provider who retired or relocated recently may still show their old address if they have not submitted an update. Always verify details before outreach.
Related guides
- What is an NPI number and what can you look up? — deeper background on what NPIs are, who has them, and the Type 1 / Type 2 distinction.
- How to find cardiologists by zip code — a worked example using the NPI API with radius filtering.
- How to find dermatologists by zip code — same approach for dermatology outreach.
- How to find psychiatrists by zip code — behavioral health provider search.
- What is Google dorking? — complement NPI data with Google search operators for richer prospect research.