HHS API: Get provider by NPI
Looks up a provider in the NPI Registry by 10-digit NPI number and returns the public name, specialties, addresses, contact details and registry dates.
Unofficial. Not affiliated with or endorsed by HHS.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Npi Number, required
npi_number The 10-digit NPI number shown on a medical bill, prescription or claim, for example 1003000126.
1003000126
Exactly 10 characters.
Input as JSON
{ "npi_number": "1003000126"}Output
{ "fax": null, "name": "ARDALAN ENKESHAFI, M.D.", "phone": "443-602-6207", "status": "active", "specialties": [ { "name": "Internal Medicine", "is_primary": false, "license_state": "MD" }, { "name": "Internal Medicine", "is_primary": false, "license_state": "MD" }, { "name": "Internal Medicine", "is_primary": false, "license_state": "VA" } ], "license_state": "DC", "provider_type": "individual", "registry_link": "https://npiregistry.cms.hhs.gov/provider-view/1003000126" , "mailing_address": "6410 ROCKLEDGE DR STE 304, BETHESDA, MD 20817-1841", "practice_address": "6410 ROCKLEDGE DR STE 304, BETHESDA, MD 20817-1841", "date_last_updated": "2025-05-28", "date_first_registered": "2007-08-31"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"npiregistry.cms.hhs.gov/get_provider","input":{"npi_number":"1003000126"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "npiregistry.cms.hhs.gov/get_provider" , "input": { "npi_number": "1003000126" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "npiregistry.cms.hhs.gov/get_provider" , "input": { "npi_number": "1003000126" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run npiregistry.cms.hhs.gov/get_provider# with {"npi_number":"1003000126"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "npi_number" ], "properties": { "npi_number": { "type": "string", "maxLength": 10, "minLength": 10, "description": "The 10-digit NPI number shown on a medical bill, prescription or claim, for example 1003000126." } }}Output schema
{ "type": "object", "required": [ "name", "provider_type", "specialties", "practice_address", "mailing_address", "phone", "fax", "license_state", "status", "date_first_registered", "date_last_updated", "registry_link" ], "properties": { "fax": { "type": [ "string", "null" ] }, "name": { "type": "string", "description": "Provider name with credentials when listed." }, "phone": { "type": [ "string", "null" ] }, "status": { "enum": [ "active", "deactivated" ], "type": "string" }, "specialties": { "type": "array", "items": { "type": "object", "required": [ "name", "is_primary", "license_state" ], "properties": { "name": { "type": "string" }, "is_primary": { "type": "boolean" }, "license_state": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "license_state": { "type": [ "string", "null" ], "description": "State of the primary specialty license, when listed." }, "provider_type": { "enum": [ "individual", "organisation" ], "type": "string" }, "registry_link": { "type": "string", "format": "uri" }, "mailing_address": { "type": [ "string", "null" ] }, "practice_address": { "type": [ "string", "null" ] }, "date_last_updated": { "type": [ "string", "null" ], "format": "date" }, "date_first_registered": { "type": [ "string", "null" ], "format": "date" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
npiregistry.cms.hhs.gov/get_provider- Returns
- name, provider type, specialties, practice and mailing addresses, phone, fax, license state, status, registry dates, registry link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method npiregistry.cms.hhs.gov/get_provider with the inputs above.
Ask your agent
- Look up the provider with NPI 1003000126 and show me their specialty and practice address
- I got a claim with NPI 1487654321 on it, can you pull up who that doctor is and their phone number?
- Check the NPI registry for 1679576722 and tell me if the provider's status is active
- What license state and registry dates are on file for NPI 1972648135 on hhs.gov?
- Find the practice and mailing addresses for the clinic tied to NPI 1215987403 from my prescription label
See more
All HHS methodsFinds US healthcare providers by name, place, specialty and provider type in the NPI Registry, with practice contact details and primary taxonomy. Results may include providers with similar names.
npiregistry.cms.hhs.gov/search_providersFinds U.S. nursing homes on Medicare Care Compare by name, city and state, or ZIP code. Results include star ratings, ownership, fines from the last three years, and Care Compare links.
medicare.gov/search_nursing_homesFind nearby NHS service listings from a UK postcode or town, nearest first. NHS service search covers England; urgent_care returns A&E listings. Hours, patient availability and websites are null when not shown.
nhs.uk/search_nearby_servicesFinds NIH research grants by topic, organisation, or researcher name. Searches the last five fiscal years by default.
reporter.nih.gov/search_grantsFinds U.S. hospitals by name, city and state, or ZIP code, with Medicare overall and patient survey star ratings, contact details, and Care Compare links. Ratings may be unavailable for some hospitals.
medicare.gov/search_hospitalsFinds PubMed medical and life-science articles by topic, with publication details and free full-text links when PubMed confirms them.
pubmed.ncbi.nlm.nih.gov/search_articlesGets the full PubMed abstract and publication details for one article by title, PubMed link, or PubMed number (PMID). A title is searched in PubMed titles first and must closely match a found article. Some articles have no abstract or free full text.
pubmed.ncbi.nlm.nih.gov/get_articleFinds ICD-10-CM diagnosis codes and official names from a plain-language condition description, retrying with simplified wording when the first search finds nothing.
clinicaltables.nlm.nih.gov/search_diagnosis_codes