How to Search the NPI Registry — A Free Guide

By the getdork team — Published June 12, 2026

The NPI registry is a free federal database of over 7 million licensed U.S. healthcare providers, maintained by the Centers for Medicare & Medicaid Services (CMS). You can search it by provider name, NPI number, specialty, city, or state — with no account and no cost — at npiregistry.cms.hhs.gov or via its public REST API. This guide covers every search method, the quirks you'll run into with the API, and how to get radius-filtered results the native interface can't produce.

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:

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.

What an NPI record contains: NPI number, provider name, credential, primary practice address, phone number, specialty taxonomy (NUCC code + description), entity type (individual vs. organization), and enumeration date. It does not include email, hospital-affiliation networks, or scheduling data.

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:

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
Critical API quirk: The 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
CardiologistCardiovascular Disease
DermatologistDermatology
Physical therapistPhysical Therapy
PsychiatristPsychiatry
Orthopedic surgeonOrthopedic Surgery
Family doctorFamily Medicine
NeurologistNeurology
OB/GYNObstetrics & Gynecology
ENT / ear-nose-throatOtolaryngology
Kidney doctorNephrology

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:

  1. Find all zip codes whose centroid falls within N miles of the target zip, using Haversine distance math.
  2. Query the NPI API once per zip code in that set.
  3. 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.

Search the NPI registry by specialty and zip code radius.
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:

What the NPI registry does not contain

The registry is often assumed to be more complete than it is. It does not include:

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