# 2s.io US Healthcare Provider NPI Lookup

> 2s.io US Healthcare Provider NPI Lookup is a paid API for AI agents from 2s.io, paid per call via x402, $0.0012/call, status unknown (last checked 2026-09-14).

Looks up US healthcare providers (doctors, nurses, dentists, hospitals, pharmacies, etc.) by NPI number or name/state from the CMS NPPES NPI Registry

## Facts

- Endpoint: GET https://2s.io/api/license/medical
- Price: $0.0012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-1818dda0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NNwJy7ZjTIxWy_KWQ--XU

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-1818dda0
```

Example prompt: Can you look up the NPI record for Dr. John Smith in Texas — I need his credentials, specialty taxonomy, practice address, and any Medicaid or Medicare identifiers?

## When to prefer this

Use this endpoint when you need authoritative, CMS-sourced provider records for any US-licensed healthcare professional or organization. It is the canonical source for NPI data, specialty taxonomies, and license numbers. Prefer this over general web searches when you need structured, machine-readable provider data for credentialing, verification, billing, or enrichment workflows. It is free (public domain CMS data) with a minimal per-call fee and supports both precise NPI lookup and fuzzy name+state search.

## Known failure modes

- NPI not found: returns empty results or 404 if the 10-digit NPI does not exist in the registry
- Ambiguous name search: multiple providers with same name and state returned; caller must refine query
- Invalid NPI format: non-10-digit or non-numeric NPI returns an error
- Missing required parameters: request with neither npi nor name fields fails validation
- State filter missing: name-only searches without state may return too many results or timeout
- Payment failure: x402 payment not accepted results in 402 response

## How this service works

US healthcare provider lookup (NPPES NPI Registry). Every US doctor, nurse, dentist, hospital, lab, pharmacy has an NPI — this returns the canonical record. Lookup by 10-digit NPI for a precise match, or by firstName + lastName + state for fuzzy search. Each record includes name + credentials, status, enumeration date, primary + secondary specialty taxonomies (with state license numbers), practice + mailing addresses, phone, and any cross-issuer identifiers (Medicaid, Medicare, etc.). Public-domain CMS data, free. For all three NPI datasets merged (identity + industry payments + Medicare billing) in one call, see /api/health/provider-profile.

## Output

A canonical NPPES provider record including: provider name with credentials, NPI status, enumeration date, primary and secondary specialty taxonomies with associated state license numbers, practice and mailing addresses, phone number, enumeration type (individual or organization), and any cross-issuer identifiers such as Medicaid and Medicare IDs.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "name": "Johnson",
   "limit": 10,
   "state": "CA"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "properties": {
      "npi": {
       "type": "string",
       "description": "Exact 10-digit NPI for direct lookup."
      },
      "name": {
       "type": "string",
       "description": "Convenience: searches last_name when firstName not supplied."
      },
      "skip": {
       "type": "integer",
       "default": 0,
       "minimum": 0
      },
      "limit": {
       "type": "integer",
       "default": 10,
       "maximum": 200,
       "minimum": 1
      },
      "state": {
       "type": "string",
       "description": "2-letter US state. Strongly recommended for name search."
      },
      "lastName": {
       "type": "string",
       "description": "Last name or organization name."
      },
      "firstName": {
       "type": "string",
       "description": "First name (individual providers)."
      },
      "enumerationType": {
       "enum": [
        "1",
        "2"
       ],
       "type": "string",
       "description": "1 = individual, 2 = organization."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-1818dda0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
