The NPI Registry API

CMS runs a free JSON API for the NPI registry. No key is needed.

Endpoint

GET https://npiregistry.cms.hhs.gov/api/?version=2.1&number=1003000126

The response is JSON with result_count and a results array. Each result has basic (name, credential, status, dates), addresses, taxonomies, identifiers, practiceLocations and other_names.

Useful parameters

ParameterWhat it does
numberExact NPI
first_name, last_nameIndividual name. A trailing * works as a wildcard after two letters.
organization_nameOrganization name, wildcard allowed
enumeration_typeNPI-1 or NPI-2
taxonomy_descriptionSpecialty text, such as Dentist (not the code)
city, state, postal_codeLocation. State alone is not allowed. Combine it with something else.
limit, skipUp to 200 results per call, and you can skip up to 1,000

Limits to know about

  • One NPI per request, so checking a list means one call per number.
  • No more than 1,200 results for any search, which rules out pulling a whole specialty.
  • Deactivated NPIs simply return no results.
  • The API sends no caching headers and can be slow at busy times.

For lists, our bulk lookup handles the calls, the retries and the deactivation check for you and returns a spreadsheet. We are looking at offering an API with batch requests. Tell us if you would use one.