Skip to the page
Dental only. API first.

The dental clearinghouse for software companies.

Eligibility, claims, attachments, remittances and predeterminations through one JSON API. No X12 to write, no portals to scrape.

A sandbox key in minutes. Test mode never reaches a real payer and costs nothing.

POST /api/v1/eligibilityRequest
curl "https://sandbox.myclaimhouse.com/api/v1/eligibility" \
  -H "Authorization: Bearer $CLAIMHOUSE_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<EOF
{
  "office_id": "$OFFICE_ID",
  "payer_id": "$PAYER_ID",
  "subscriber": {
    "first_name": "Sam",
    "last_name": "Sample",
    "date_of_birth": "1990-01-01",
    "member_id": "CH-ACTIVE-FULL"
  },
  "procedure_codes": ["D0120", "D2740"]
}
EOF
Sam Sample PPO, calendar year
Active
Maximum left
$2,000.00
Deductible left
$50.00
D0120 periodic oral exam
100%

The answer, already read for you: plan, maximums, deductibles, coverage by category and by procedure code.

  • 77
    API endpoints, each with an MCP tool
  • 803
    dental payers in the directory
  • 82
    MCP tools, with 5 that explain answers
  • $0
    to build and test in the sandbox
Build with AI

Everything the API does, your agent can do.

The MCP server has a tool for every one of the 77 endpoints, plus 5 that explain answers, with the same key, permissions, validation, idempotency and errors as the API. Use it to operate claims, or to have an agent write your integration.

01

Connect the MCP server

Streamable HTTP with your API key as a bearer token. Nothing to install.

  • Claude Code and Claude Desktop
  • Cursor
  • Your own agent, or any MCP client
02

Give it the docs

Machine-readable docs, so the agent uses real field names instead of guessing.

  • OpenAPI 3.1 document/docs/openapi.json
  • Every page in one file/docs/llms-full.txt
  • Any docs page as markdown: add .md
03

Let it work, safely

The sandbox is the default, and you can see everything the agent did.

  • A test key can only ever reach the sandbox
  • Read or submit permissions per key
  • Every tool call is logged
Try asking
Find a payer called Delta, then check coverage for Sam Sample, born 1990-01-01, member ID CH-ACTIVE-FULL, at my test office for a D2740 crown. Tell me the remaining annual maximum and what the plan pays for the crown. Then try CH-NOT-FOUND and explain what to change.
Then
Send a claim for that crown with my test office and its first provider, attach a bitewing X-ray, and tell me when the payer has answered and what it paid.
Products

The whole dental revenue cycle, one integration.

Send JSON, get JSON back. Claim House writes the 837D, reads the 997, 277 and 835, and tells you what happened in plain fields.

270 / 271

Eligibility

Real-time checks with maximums, deductibles, coverage by category and by CDT code. Rejections come back with the reason and a fix-and-resend path.
837D

Claims

Validated before they leave, then tracked from queued to accepted, paid or denied. Corrections and voids are first-class, not a phone call.
X-rays, perio charts, narratives

Attachments

Upload images against a claim and Claim House carries the attachment number onto it. Payer requests for more information arrive as events.
835

Remittances (ERAs)

Payments matched to the claims they pay, line by line, with adjustments spelled out. Unmatched remittances are held for review, never dropped.
Estimates before treatment

Predeterminations

Ask the payer what it will pay before the work is done, then convert the estimate into the claim with one call.
997 / 277

Claim status

Every acknowledgment and status update lands on the claim's timeline and fires a webhook. No polling, no guessing.
API

Built the way you would have built it.

A clearinghouse that behaves like the other APIs you already use.

  1. 01REST and JSON. Snake_case fields, money as decimal strings, one error shape.
  2. 02Safe retries. Idempotency keys on every write, so a retry never sends a claim twice.
  3. 03Signed webhooks. Every state change is an event you can replay.
  4. 04A real sandbox. A payer network that answers, with scenarios you pick by member ID.
  5. 05One source of truth. The reference and the OpenAPI document are generated from the definitions the API checks requests with.
  6. 06SFTP too. Batch partners drop 837D files and collect 997, 277 and 835 files back.
Webhookclaim.accepted
{
  "id": "evt_01JM000000E008000000000023",
  "object": "event",
  "type": "claim.accepted",
  "sequence": 2,
  "created_at": "2026-09-24T21:00:30.500000+00:00",
  "data": {
    "id": "clm_01JM000000E00800000000002G",
    "object": "claim",
    "office_id": "off_01JM000000E008000000000003",
    "payer": {
      "id": "pyr_01JM000000E008000000000004",
      "payer_id": "00000",
      "name": "Example Dental Plan"
    },
    "kind": "claim",
    "state": "accepted_payer",
    "previous_state": "accepted_clearinghouse",
    "frequency": "original",
    "parent_id": null,
    "request_id": "req_01JM000000E00800000000002J",
    "file": null,
    "status": {
      "category": "A2",
      "code": "20"
    },
    "created_at": "2026-09-24T21:00:00.120000+00:00",
    "occurred_at": "2026-09-24T21:00:30.400000+00:00"
  }
}
MCP serverCursor, Claude, any client
{
  "mcpServers": {
    "claimhouse": {
      "url": "https://sandbox.myclaimhouse.com/api/mcp",
      "headers": { "Authorization": "Bearer ${env:CLAIMHOUSE_KEY}" }
    }
  }
}
Dashboard

Everything the API does, your team can see.

Support and billing staff work the same claims your code sends, without a second tool.

  1. A paid claim in the Claim House dashboard: what the payer paid, the procedures and the timeline

    Claim detail

    Open any claim and see what happened to it: what the payer paid and what the patient owes, every procedure line with its own status, and a timeline from created to reconciled.

    • Download the 837D exactly as it was sent
    • Correct or void the claim from the same page
    • The raw X12 and the events it fired, one tab away
  2. The claims list, filtered by state

    Claims

    Every claim of every office in one list, with its state and what happens next in plain words. Filter by state, payer or office, or search by patient or control number.

    • Validated claims queue for the next batch with one click
    • Needs attention and rejected claims say what to change
    • The same list your code sees through the API
  3. An eligibility answer with maximum, deductible and coverage

    Eligibility

    The payer's answer laid out the way a front desk reads it: annual maximum and deductible remaining, coverage by category and by procedure code, and the network status.

    • Rejections say what to fix, and you resend from the form
    • Start a claim from the answer
    • Check again with one click
  4. A remittance matched to the claim it pays

    Remittances

    Each payment against the claims it pays, line by line, with every adjustment and its reason. Post it to your system, then mark it posted so nothing is counted twice.

    • Payments matched to claims automatically
    • Unmatched remittances are held for review, never dropped
    • Mark it posted once it is in your system
  5. The Developers page with API keys and webhook endpoints

    Developers

    Everything an integration needs on one page: API keys with their mode and permissions, webhook endpoints with a signing secret, the sandbox scenarios and the SFTP account.

    • Test and live keys with read or submit permissions, revocable any time
    • Signed webhooks, retried up to 8 times over about 24 hours
    • A request log of every API and MCP call
Payer network

803 dental payers, and you can check yours right now.

The directory is public. Search it without an account and see which transactions each payer supports and whether it needs enrollment.

Browse the payer network
Pricing

Published prices. Pay for what you send.

Eligibility & benefits
from $0.08
Electronic claims
$0.20
Electronic attachments
$0.30
ERAs (835 remittances)
$0.05
See full pricing

For teams building dental software.

AI and automation builders

Give an agent the MCP server and a test key, and let it work claims end to end.

Practice management systems

Put insurance inside your product instead of sending users to a portal.

Dental billing companies

Run many offices from one account, by API, dashboard or SFTP batch.

DSO technology teams

One connection for every location.
Security

Patient data, handled like patient data.

How we handle security
  • Test and live kept apart

    A test key can only ever reach the sandbox.

  • Roles for every teammate

    Owner, admin, developer and viewer. The rules are enforced in the database, not only on the screen.

  • Scoped API keys

    Each key has read or submit permissions and a mode. The full key is shown once, and you can revoke it at any time.

  • Signed webhooks

    Every delivery carries a signature you can verify. The signing secret is shown once.

  • An audit trail

    Changes to the account are recorded with who made them and when.

Send your first eligibility check in five minutes.

Create a sandbox account, copy a test key, and run the quickstart. Talk to us when you are ready to go live.