How to Find Physicians by Specialty and State (NPI Registry Guide)

By the getdork team — Published June 12, 2026

The fastest way to find physicians by specialty and state is the free CMS NPI Registry API. Query it with two parameters — taxonomy_description (e.g., Cardiology) and state (e.g., TX) — and it returns individual practitioners with name, practice address, and phone number. No login, no cost, no rate-limit for reasonable usage. For multi-state lists, repeat the query per state and de-duplicate on NPI number.
On this page

Why the NPI registry is the right source

The National Provider Identifier (NPI) registry is a federal database maintained by CMS (Centers for Medicare & Medicaid Services) and updated continuously as providers register, move, or retire. Every licensed healthcare provider in the U.S. who bills insurance is required to have an NPI, which means coverage is nearly complete across physicians, nurse practitioners, physician assistants, physical therapists, and dozens of other provider types.

For sales, recruiting, or research purposes, it has several advantages over commercial physician databases: it is free, it is public (no license required), its data comes directly from providers at registration, and it is the same underlying source that many paid healthcare data services resell at a markup. Understanding how to query it directly saves cost and gives you access to the most current records.

For background on what an NPI number is and what data each record contains, see What is an NPI number and what can you look up?

taxonomy_description values for common specialties

Critical note: The NPI API's taxonomy_description parameter only accepts human-readable description strings. Passing a numeric NUCC taxonomy code (e.g., 207RC0000X) silently returns zero results. Always use the specialty name.
Specialty taxonomy_description value to use Also matches (partial)
CardiologyCardiologyInterventional Cardiology
DermatologyDermatologyDermatopathology (via Dermatology prefix)
PsychiatryPsychiatryChild & Adolescent Psychiatry
Internal MedicineInternal MedicineGeriatric Medicine (where subspecialty listed)
Orthopedic SurgeryOrthopedic SurgeryHand Surgery (orthopedic subspecialty)
Family MedicineFamily Medicine
NeurologyNeurologyNeurological Surgery
OncologyHematology & OncologyRadiation Oncology
Physical TherapyPhysical Therapy
PediatricsPediatrics
GastroenterologyGastroenterology
UrologyUrology

The API performs a partial prefix match on taxonomy_description. A value of Cardiology matches both Cardiology and Interventional Cardiology. If you want only the more specific subspecialty, pass the full string: Interventional Cardiology. For the complete list of taxonomy values used in getdork's physician search, see the source at How to search the NPI registry.

Query structure and parameters

The NPI Registry API endpoint is:

https://npiregistry.cms.hhs.gov/api/

A specialty-and-state query looks like this:

# Cardiologists in Texas (individual providers, first 200 results)
https://npiregistry.cms.hhs.gov/api/?version=2.1
  &taxonomy_description=Cardiology
  &state=TX
  &enumeration_type=NPI-1
  &limit=200
  &skip=0
Parameter Value Notes
version 2.1 Always use 2.1; earlier versions return less structured data
taxonomy_description e.g., Cardiology Human-readable string, not a NUCC code. Partial match.
state e.g., TX Two-letter USPS state abbreviation, uppercase
enumeration_type NPI-1 NPI-1 = individual providers. NPI-2 = organizations.
limit 1–200 Maximum per request is 200
skip 0, 200, 400… Offset for pagination. Increment by your limit value.
The API returns a result_count field showing the total number of matching records. If result_count is 850, you need five requests (skip=0, 200, 400, 600, 800) to retrieve all records.

Step-by-step workflow

  1. Choose your specialty. Pick the taxonomy_description value from the table above. If you are unsure of the exact string, test with a broader term first (e.g., Surgery) to see what subspecialties it matches, then narrow to the exact variant you need.
  2. Identify your target states. List the two-letter state codes for every state in your territory or campaign. The NPI registry uses standard USPS abbreviations: CA, TX, NY, FL, IL, and so on.
  3. Run the first request. Use the URL structure above with limit=200&skip=0. Read result_count from the response to know how many pages you need.
  4. Page through results. Increment skip by 200 until you have retrieved all records. For large specialties in large states (e.g., Family Medicine in California), this may be 20–30 requests.
  5. Extract the fields you need. From each record, pull basic.first_name, basic.last_name, addresses[practice location].address_1, addresses[practice location].city, addresses[practice location].state, addresses[practice location].postal_code, and addresses[practice location].telephone_number.
  6. Export to CSV or your CRM. De-duplicate on the number field (the NPI number) before merging records from multiple queries. A provider registered in two states has one NPI number.

Building multi-state outreach lists

For multi-state sales or recruiting campaigns, the workflow is the same query repeated per state. A few practical points:

getdork's physician search does this for you.
Select a specialty, choose a state or enter a zip code with radius, and getdork queries the NPI registry and returns a clean, filterable result table — no API calls to write. Pro accounts can export to CSV with one click.

Try the physician search at getdork.com →

Known limitations of the NPI registry

For a walkthrough of the full search interface including zip-code radius search, see How to find cardiologists by zip code.

Frequently asked questions

Can I filter the NPI registry by specialty and state at the same time?

Yes. Pass both taxonomy_description and state in the same API request. For example, taxonomy_description=Dermatology&state=FL returns individual dermatologists with a Florida practice address. Both filters apply simultaneously.

What is the correct taxonomy_description for a specialty?

Use the human-readable NUCC taxonomy description string — for example, Cardiology, Psychiatry, or Orthopedic Surgery. Do not use the alphanumeric NUCC taxonomy code (like 207RC0000X). The API's taxonomy_description parameter accepts only the text description. Passing a code silently returns zero results.

How many physicians are in the NPI registry?

As of 2026 the registry contains more than 7 million active provider records across individual practitioners (NPI Type 1) and organizational entities (NPI Type 2). The individual-provider segment covers physicians, nurse practitioners, physician assistants, physical therapists, dentists, chiropractors, and other licensed providers.

Does the NPI registry include phone numbers?

Yes, when the provider submitted a practice phone number at registration. Each practice location address record includes a telephone_number field. Some records omit it if the provider left it blank during registration. Treat NPI phone numbers as a starting point — they reflect the practice's main line as of the most recent update and may not be current.

Is it legal to use NPI data for sales or recruiting outreach?

Yes. The NPI registry is a public federal database maintained by CMS and released under an open government data policy with no restrictions on commercial use. Building healthcare sales lists, recruiting pipelines, or research databases from NPI data is standard practice in the medical device, pharmaceutical, and health IT industries.

Why does my NPI query return zero results for a specialty?

The most common cause is passing a numeric NUCC taxonomy code as the taxonomy_description value. Use the text name instead. Also check that the state abbreviation is exactly two uppercase letters, that enumeration_type=NPI-1 is set for individual providers, and that version=2.1 is included.

Related guides