Providers

Three endpoints cover the core provider use cases: looking up a known NPI, searching by name or specialty, and finding providers near a location.

NPI lookup

Retrieve a single provider by NPI number. This is the fastest and most precise query.

GET /v1/providers/{npi}

Path parameters

ParameterTypeDescription
npi required string 10-digit NPI number. The API validates format and check digit before querying the database.

Response

FieldTypeDescription
npistringThe NPI number.
entity_typestringindividual or organization.
nameobject|nullName fields for individuals (first, middle, last, credential). Null for organizations.
organization_namestring|nullOrganization name. Null for individuals.
statusstringactive or deactivated.
enumeration_datestringDate the NPI was assigned (ISO 8601).
last_updatedstringDate the NPPES record was last updated (ISO 8601).
deactivation_datestring|nullDate deactivated, if applicable.
primary_taxonomyobject|nullPrimary taxonomy code and description (code, description).
practice_addressobject|nullPrimary practice location (address_1, address_2, city, state, postal_code, country).
curl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.npilayer.com/v1/providers/1003000126"
{
  "data": {
    "npi": "1003000126",
    "entity_type": "individual",
    "name": {
      "first": "Jane",
      "middle": "A",
      "last": "Smith",
      "credential": "MD"
    },
    "organization_name": null,
    "status": "active",
    "enumeration_date": "2008-04-14",
    "last_updated": "2026-08-21",
    "deactivation_date": null,
    "primary_taxonomy": {
      "code": "207RC0000X",
      "description": "Cardiovascular Disease Physician"
    },
    "practice_address": {
      "address_1": "123 Main St",
      "address_2": null,
      "city": "Traverse City",
      "state": "MI",
      "postal_code": "49684",
      "country": "US"
    }
  },
  "meta": {
    "source": "CMS NPPES"
  }
}

Search for providers using name, location, specialty, and other filters. At least one filter parameter is recommended โ€” an empty query returns paginated results across all providers.

GET /v1/providers/search

Query parameters

ParameterTypeDescription
namestringPartial match against first name, last name, or organization name.
first_namestringFilter by first name (individuals only).
last_namestringFilter by last name (individuals only).
organizationstringFilter by organization name.
entity_typestringindividual or organization.
citystringFilter by practice city.
statestringTwo-letter state abbreviation (e.g. MI).
zipstring5-digit ZIP code of the practice address.
taxonomystringExact NUCC taxonomy code (e.g. 207RC0000X).
specialtystringPartial text match against taxonomy display name (e.g. cardiology).
limitintegerResults per page. Default 25, maximum 100.
pageintegerPage number, 1-based. Default 1.
curl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.npilayer.com/v1/providers/search?last_name=smith&state=MI&specialty=cardiology"
{
  "data": [
    {
      "npi": "1003000126",
      "entity_type": "individual",
      "name": {
        "first": "Jane",
        "middle": null,
        "last": "Smith",
        "credential": "MD"
      },
      "organization_name": null,
      "status": "active",
      "primary_taxonomy": {
        "code": "207RC0000X",
        "description": "Cardiovascular Disease Physician"
      },
      "city": "Traverse City",
      "state": "MI"
    }
  ],
  "meta": {
    "count": 1,
    "page": 1,
    "limit": 25,
    "total": 1
  }
}

Geographic search

Find providers within a radius of a ZIP code or GPS coordinates. Results are ordered by distance ascending and include a distance_miles field. Location resolution is ZIP-centroid based โ€” distances are approximate.

GET /v1/providers/nearby

Query parameters

ParameterTypeDescription
zip required* string 5-digit ZIP code to search around. Required unless lat/lng are provided.
lat required* number Latitude in decimal degrees. Provide with lng as an alternative to zip.
lng required* number Longitude in decimal degrees. Provide with lat as an alternative to zip.
radius number Search radius in miles. Default 25.
taxonomystringExact NUCC taxonomy code.
specialtystringPartial text match against taxonomy display name.
limitintegerResults per page. Default 25, maximum 100.
pageintegerPage number, 1-based. Default 1.

* Provide either zip or both lat and lng. Providing none returns a 400 invalid_location error.

# By ZIP code
curl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.npilayer.com/v1/providers/nearby?zip=49684&specialty=cardiology&radius=25"

# By coordinates
curl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.npilayer.com/v1/providers/nearby?lat=44.7631&lng=-85.6206&radius=50"
{
  "data": [
    {
      "npi": "1003000126",
      "entity_type": "individual",
      "name": {
        "first": "Jane",
        "middle": null,
        "last": "Smith",
        "credential": "MD"
      },
      "organization_name": null,
      "status": "active",
      "primary_taxonomy": {
        "code": "207RC0000X",
        "description": "Cardiovascular Disease Physician"
      },
      "city": "Traverse City",
      "state": "MI",
      "distance_miles": 3.8
    }
  ],
  "meta": {
    "count": 1,
    "page": 1,
    "limit": 25,
    "radius_miles": 25,
    "center": {
      "zip": "49684",
      "lat": 44.7631,
      "lng": -85.6206
    }
  }
}
Geographic search uses ZIP-centroid coordinates, not exact street addresses. Distances are approximate and suitable for discovery but should not be treated as precise routing distances.