CostKits Platform API · v1

Coverage data and bill intelligence for developers

Coverage rules, prior auth requirements, cost-sharing, and bill error detection — one API, real payer data.

API key auth
Authorization: Bearer ck_live_your_key_here

All requests need this header. Keys are prefixed ck_live_ for live and ck_sb_ for sandbox.
Get a key at costkits.com/api-keys.

Base URL: https://api.costkits.com

Endpoints
Coverage
GET

/v1/coverage/summary

Coverage status and policy summary for a CPT code + carrier. Params: cpt_code, carrier (optional).

Builder+
GET

/v1/coverage/prior-auth

Prior authorization requirement — required, conditional, or not required. Params: cpt_code, carrier.

Builder+
GET

/v1/coverage/cost-sharing

Deductible, copay, and coinsurance rules. Params: cpt_code, carrier.

Builder+
GET

/v1/coverage/frequency

How often a procedure is covered. Returns interval (years), age limits, condition keys. Params: cpt_code, carrier.

Builder+
GET

/v1/coverage/triggers

Medical necessity triggers and clinical criteria required for coverage approval. Pro only.

Pro
GET

/v1/coverage/procedures

All covered procedures for a carrier with summary policy data. Params: carrier (optional).

Builder+
GET

/v1/coverage/carriers

All supported carriers with procedure and policy counts.

Builder+
Bill Intelligence
POST

/v1/bill-analysis

Submit bill line items. Returns flags for duplicates, unbundling, screening reclassification, and benchmark overcharges. Body: {line_items: [{cpt_code, charge, quantity}]}

Pro
Account
GET

/v1/platform/status

Current tier, monthly quota, calls used, and quota reset date.

All
GET

/v1/platform/billing/portal

Generate a Stripe Customer Portal link to manage subscription or payment method.

All
POST

/api-keys/rotate

Rotate your API key — old key revoked immediately, new key returned once.

All
Example requests

Check coverage for a colonoscopy (CPT 45378) with Aetna:

curl "https://api.costkits.com/v1/coverage/summary?cpt_code=45378&carrier=aetna" \
  -H "Authorization: Bearer ck_live_your_key_here"

# Response
{
  "cpt_code": "45378",
  "carrier": "aetna",
  "covered": true,
  "coverage_tier": "preventive",
  "notes": "Covered at 100% when billed as preventive (screening colonoscopy)"
}

Analyze bill line items for errors (Pro):

curl -X POST https://api.costkits.com/v1/bill-analysis \
  -H "Authorization: Bearer ck_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"line_items":[{"cpt_code":"45378","charge":4500,"quantity":1},{"cpt_code":"45380","charge":1200,"quantity":1}]}'

# Response
{
  "risk_score": "medium",
  "flags": [{
    "cpt_code": "45380",
    "flag_type": "unbundling",
    "severity": "medium",
    "message": "45380 is typically bundled with 45378 and should not be billed separately"
  }]
}
Try it live
API Tester Live

        
Error codes

All errors use RFC 9457 Problem Details format with Content-Type: application/problem+json.

401 INVALID_API_KEY

Key missing, revoked, or malformed.

403 ENDPOINT_REQUIRES_PRO

Endpoint needs Pro tier.

429 QUOTA_EXCEEDED

Monthly call limit reached. Resets on the 1st.

429 RATE_LIMITED

Too many requests per second.

400 VALIDATION_ERROR

Missing or invalid request parameters.

503 SERVICE_UNAVAILABLE

Temporary outage. Retry with backoff.

Plans
Sandbox
$0 / month
100 calls/month · testing only
  • /v1/platform/status
  • /v1/coverage/carriers (list only)
  • No credit card
  • Key issued instantly
Get Sandbox Key
Pro
$499 / month
50,000 calls/month
  • Everything in Builder
  • Coverage triggers
  • Bill intelligence
  • Higher rate limits
Get Pro Key

Ready to start building?

Get a Sandbox key instantly — no credit card required. Upgrade to Builder or Pro when you're ready to ship.

Get your API key →