Roster operations

Bulk NPI enrichment for provider rosters and CSV workflows

Ops and credentialing teams maintain spreadsheets of NPIs. Send up to 50 identifiers per request and get per-row statuses without writing your own NPPES batch client.

Typical workflow

  1. Export a column of NPIs from your roster CSV (see docs for CSV → JSON prep).
  2. POST POST /api/v1/npi/bulk with a JSON npis array (1–50 items).
  3. Map each item by status: found, not_found, upstream_error, or quota_exceeded.
  4. Persist normalized provider fields and batch meta.counts for audit trails.
Input → output

Concrete API examples

Replace YOUR_API_KEY with a dashboard key. Full schemas live in OpenAPI.

Batch request

curl -sS \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"npis":["1003000126","1932100864","1851789159"]}' \
  "https://healthproviderapi.com/api/v1/npi/bulk"

Batch response (mixed statuses)

{
  "data": [
    {
      "npi": "1003000126",
      "status": "found",
      "provider": { "npi": "1003000126", "entityType": "NPI-1" },
      "cached": true,
      "requestId": "req_bulk01_00",
      "error": null
    },
    {
      "npi": "1932100864",
      "status": "not_found",
      "provider": null,
      "cached": false,
      "requestId": "req_bulk01_01",
      "error": null
    },
    {
      "npi": "1851789159",
      "status": "upstream_error",
      "provider": null,
      "cached": false,
      "requestId": "req_bulk01_02",
      "error": {
        "code": "upstream_unavailable",
        "message": "The upstream provider registry is temporarily unavailable."
      }
    }
  ],
  "meta": {
    "requestId": "req_bulk01",
    "counts": {
      "requested": 3,
      "found": 1,
      "notFound": 1,
      "upstreamErrors": 1,
      "quotaExceeded": 0,
      "cacheHits": 1
    }
  }
}
Start integrating
Same signup path as the homepage: account → API key → first request.