NPILayer API
The NPILayer API gives developers structured access to U.S. healthcare provider data from the CMS NPPES registry. Search providers by NPI number, name, specialty, or geographic area with a single REST API.
Base URL
All endpoints are versioned under
https://api.npilayer.comAll endpoints are versioned under
/v1/.Quickstart
-
Create an account Sign up at npilayer.com/signup to get an API key. The free plan includes 1,000 requests per month.
-
Authenticate your requests Pass your API key in the
Authorizationheader on every request. -
Make your first request Look up a provider by NPI number:
curl \ -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.npilayer.com/v1/providers/1003000126"
$ch = curl_init('https://api.npilayer.com/v1/providers/1003000126');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $response['data']['name']['last']; // Smith
const response = await fetch(
'https://api.npilayer.com/v1/providers/1003000126',
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const { data } = await response.json();
console.log(data.name.last); // Smith
import requests
r = requests.get(
'https://api.npilayer.com/v1/providers/1003000126',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
provider = r.json()['data']
print(provider['name']['last']) # Smith
Available endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/providers/{npi} | Look up a single provider by NPI number |
| GET | /v1/providers/search | Search providers by name, state, specialty, and more |
| GET | /v1/providers/nearby | Find providers within a radius of a ZIP code or coordinates |
| GET | /v1/taxonomies | List all NUCC provider taxonomy codes |
| GET | /v1/taxonomies/search | Search taxonomy codes by name |
Data source
All provider data comes from the CMS NPPES (National Plan and Provider Enumeration System) registry, updated monthly with weekly incremental additions. NPILayer maintains its own local database and does not proxy CMS API calls at request time.
An NPI record confirms that CMS has enumerated a provider with that identifier. It does not prove current licensure, network participation, or active practice status. Display the following disclaimer where appropriate:
Provider information is based on publicly available NPPES data. An NPI does not indicate licensure, credentialing, network participation, or current practice status.