API Docs/Quickstart

Quickstart

The API follows a three-step asynchronous pattern: submit a search, poll for completion, then download results. This page is the shortest possible walkthrough — for a full working client in four languages, see Code Examples.

  1. Create SearchPOST /v1/searches
  2. Poll StatusGET /v1/searches/:id
  3. Download CSVGET download_url

Set KEEPER_API_KEY in your environment before running the snippets below.

Full workflow

# Step 1 — Submit a search
curl -X POST https://api.keeperhealth.com/v1/searches \
  -H "Authorization: Bearer $KEEPER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "npis": [1144218512],
    "billing_codes": ["99213", "99214"],
    "fee_schedules": [{"payer": "Cigna", "plan": "PPO"}]
  }'

# Step 2 — Poll until status is "completed"
curl -H "Authorization: Bearer $KEEPER_API_KEY" \
  https://api.keeperhealth.com/v1/searches/{job_id}

# Step 3 — Download the results (no auth required, pre-signed URL)
curl -o results.csv.gz "<download_url from step 2>"
gunzip results.csv.gz

Once you've downloaded the CSV, you can load it into any analytics tool or pipeline. See the CSV Output Schema for column definitions.

See also

  • Create Search — full request body, headers, and Idempotency-Key support
  • Get Search Status — job state machine and terminal states
  • Code Examples — complete polling loops with error handling in cURL, Python, JavaScript/TypeScript, and Go
  • Rate Limits — recommended polling cadence (15–30 seconds)
  • Errors — how to read error responses and what's retry-safe
Keeper Health API v1 · Questions? company@keeperhealth.com