Provider data your app can actually use.
Search 9.8 million U.S. healthcare providers by NPI, name, specialty, and ZIP code radius. One REST API, official CMS NPPES data, updated weekly.
{ "data": [{ "npi": "1234567890", "entity_type": "individual", "name": "Sarah Johnson, MD", "specialty": "Cardiovascular Disease", "city": "Traverse City", "state": "MI", "status": "active", "distance_miles": 3.8 }], "meta": { "count": 14, "radius_miles": 25, "center": {"zip": "49684"} } }
Three endpoints. Every provider use case.
GET /v1/providers/{npi}
NPI Lookup
Retrieve the full record for any provider by their 10-digit NPI. Returns name, specialty, practice address, enumeration date, status, and taxonomy codes.
curl -H "Authorization: Bearer KEY" \ "https://api.npilayer.com/v1/providers/1234567890"
GET /v1/providers/search
Provider Search
Search by name, organization, specialty, city, state, or entity type. Combine filters. Returns paginated results across all 9.8 million active and deactivated providers.
curl -H "Authorization: Bearer KEY" \ "https://api.npilayer.com/v1/providers/search? last_name=smith&state=MI&specialty=cardiology"
GET /v1/providers/nearby
Geographic Search
Find providers within a radius of any ZIP code. Filter by specialty. Results are sorted
by distance and include distance_miles for each provider.
curl -H "Authorization: Bearer KEY" \ "https://api.npilayer.com/v1/providers/nearby? zip=49684&specialty=cardiology&radius=25"
Built on official government data. Maintained by developers.
{ "data": { "npi": "1234567890", "entity_type": "individual", "name": { "first": "Sarah", "last": "Johnson", "credential": "MD" }, "status": "active", "primary_taxonomy": { "code": "207RC0000X", "description": "Cardiovascular Disease" }, "practice_address": { "city": "Traverse City", "state": "MI", "zip": "49684" } }, "meta": { "source": "CMS NPPES" } }
Built for every healthcare use case
From startup directories to enterprise credentialing platforms — if your product touches U.S. healthcare providers, NPILayer has the data layer you need.
Add it in minutes
One HTTP request with your API key. JSON response. No SDK required — works with any language or HTTP client.
# NPI lookup curl \ -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.npilayer.com/v1/providers/1234567890" # Geographic search curl \ -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.npilayer.com/v1/providers/nearby? zip=49684&specialty=cardiology&radius=25"
const res = await fetch( 'https://api.npilayer.com/v1/providers/nearby' + '?zip=49684&specialty=cardiology&radius=25', { headers: { 'Authorization': `Bearer ${API_KEY}` } } ); const { data, meta } = await res.json(); console.log(`Found ${meta.count} providers`);
$response = file_get_contents( 'https://api.npilayer.com/v1/providers/nearby' . '?zip=49684&specialty=cardiology&radius=25', false, stream_context_create(['http' => [ 'header' => 'Authorization: Bearer ' . $apiKey ]]) ); $data = json_decode($response, true); $providers = $data['data'];
import requests res = requests.get( "https://api.npilayer.com/v1/providers/nearby", params={ "zip": "49684", "specialty": "cardiology", "radius": 25, }, headers={"Authorization": f"Bearer {api_key}"}, ) providers = res.json()["data"]
Start free. Scale when you need to.
The free plan includes 1,000 requests per month — enough to build and test your integration. Paid plans start at $29/month for 25,000 requests.
What is NPPES data?
The National Plan and Provider Enumeration System (NPPES) is the official CMS registry of National Provider Identifiers. Every U.S. healthcare provider and organization that submits claims to Medicare or Medicaid is required to obtain an NPI — making NPPES the most comprehensive authoritative source of U.S. provider identity data available.
NPILayer imports the official CMS monthly full-replacement file and applies weekly incremental updates, so the data reflects what providers have reported to CMS. An NPI record confirms that a provider or organization is enumerated in NPPES. It does not confirm that a provider is currently licensed, board-certified, accepting new patients, participating in a specific insurance network, or actively practicing at the listed address.
For applications that require licensure verification, credentialing, or network participation data, NPPES should be used as one input alongside state licensing boards and payer-specific directories.
Ready to build?
Get your free API key in 30 seconds. No credit card required.