Claims
List claims
GET/api/v1/claims
The claims of the key's organization in the key's mode, newest first, as summaries (read one claim for its lines, findings and network references). A list holds one kind: claims, unless kind=predetermination asks for the predeterminations. Filter by state, office, payer, creation time, the request that made a claim, or its patient control number. Needs a key with read, which sees every claim of its scope (a key with submit only gets a claim in the answers to its own writes).
Needs a key with read permission.
Request
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | optional | How many items to return, from 1 to 100. Default 25.At least 1.At most 100. |
| cursor | string | optional | The next_cursor of the previous page, to get the page after it. Opaque: pass it back unchanged. |
| kind | string | optional | claim (the default) or predetermination: a list holds one kind, so without kind it lists claims only (except a look-up by request_id or patient_control_number, which finds either kind).One of: `claim`, `predetermination`. |
| state | string | optional | Only claims in this state.One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| office_id | string | optional | Only claims billed by this office (off_...). |
| payer_id | string | optional | Only claims to this payer (pyr_...). |
| created_after | string (date-time) | optional | Only claims created after this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
| created_before | string (date-time) | optional | Only claims created before this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
| sent_from | string (date-time) | optional | Only claims first sent to the payer at or after this instant (when the file carrying them was handed to the network; never a void transaction): the claims a report counts as billed in a period (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
| sent_to | string (date-time) | optional | Only claims first sent before this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z). |
| request_id | string | optional | Only the claim made by this API request (the x-request-id of its response, req_...). |
| patient_control_number | string | optional | Only the claim with this patient control number, in any case. |
Response
A page of claim summaries. Status 200.
| Name | Type | Description |
|---|---|---|
| data | array of object | |
| data[].id | string | An ID that starts with clm_. |
| data[].object | string | Always `claim`. |
| data[].kind | string | claim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`. |
| data[].state | string | One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| data[].next_step | string | One sentence saying what happens next, or what you must do. |
| data[].frequency | string | original; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`. |
| data[].parent_id | string or null | The claim a void transaction voids. |
| data[].patient_control_number | string | Your identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status. |
| data[].office | object | |
| data[].office.id | string | An ID that starts with off_. |
| data[].office.name | string | |
| data[].payer | object | |
| data[].payer.id | string | An ID that starts with pyr_. |
| data[].payer.payer_id | string | The payer's own payer ID. |
| data[].payer.name | string | |
| data[].rendering_provider | object | |
| data[].rendering_provider.id | string | An ID that starts with prv_. |
| data[].rendering_provider.first_name | string | |
| data[].rendering_provider.last_name | string | |
| data[].rendering_provider.npi | string | |
| data[].patient_name | object | The patient: the dependent when there is one, else the subscriber. |
| data[].patient_name.first_name | string | |
| data[].patient_name.last_name | string | |
| data[].patient_id | string or null | The patient this is about (pat_...) in the patient directory: the dependent when there is one, else the subscriber. Set by Claim House when a check completes or a claim's patient is written; null while a check is pending, and when the patient has no date of birth or a name with no letters or digits to compare. |
| data[].service_dates | object | |
| data[].service_dates.first | string (date) or null | |
| data[].service_dates.last | string (date) or null | |
| data[].totals | object | |
| data[].totals.charge | string | The sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`. |
| data[].totals.lines | integer | At least -9007199254740991. |
| data[].payment | object or null | What the payer paid (states paid, denied and reconciled), from its remittances; null before one arrives, when every payment was reversed, and always on a predetermination. |
| data[].payment.outcome | string | paid or denied: the outcome of the claim's current payment (the latest one no reversal cancelled). A reconciled claim keeps it.One of: `paid`, `denied`. |
| data[].payment.era_id | string | The ERA of the claim's current payment (era_...): the latest one, when that is not certain. |
| data[].payment.paid | string | What the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`. |
| data[].payment.allowed | string or null | The amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`. |
| data[].payment.patient_responsibility | string | What the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`. |
| data[].payment.payment_date | string (date) or null | The payment date of the ERA. |
| data[].payment.reconciled_at | string (date-time) or null | When you confirmed you posted the payment (state reconciled); null until then. |
| data[].estimate | object or null | A predetermination's estimate (state returned); null before it arrives, and always on a claim. |
| data[].estimate.era_id | string | The ERA that carried the estimate (era_...). |
| data[].estimate.allowed | string or null | What the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`. |
| data[].estimate.pay | string | What the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`. |
| data[].estimate.patient | string | The patient's estimated share.Matches `^-?\d+\.\d{2}$`. |
| data[].estimate.returned_at | string (date-time) | When the estimate arrived. |
| data[].estimate.lines | array of object | The estimate per line, where the payer said (line_number is the predetermination's). |
| data[].estimate.lines[].line_number | integer | At least 1. |
| data[].estimate.lines[].allowed | string or null | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| data[].estimate.lines[].pay | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| data[].estimate.lines[].patient | string | An amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`. |
| data[].converted_from | string or null | On a claim made from a predetermination: the predetermination. |
| data[].converted_to | string or null | On a converted predetermination: the claim made from it. |
| data[].request_id | string or null | The API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard. |
| data[].created_at | string (date-time) | |
| data[].updated_at | string (date-time) | |
| next_cursor | value | Pass as cursor to get the next page; null when there is no next page. |
Errors
| HTTP status | Code | What it means |
|---|---|---|
| 401 | UNAUTHORIZED | A valid API key is required. Send it as "Authorization: Bearer <key>". |
| 403 | PERMISSION_DENIED | This API key is not allowed to do that. |
| 422 | INVALID_REQUEST | The request is not valid. |
| 504 | TIMEOUT | The request took too long to finish. It may still have taken effect: look it up before sending it again with a new Idempotency-Key. What it made is found with GET /api/v1/eligibility?request_id=<this request_id>, and the same filter on /api/v1/claims and /api/v1/attachments (a key with read permission). |
| 500 | INTERNAL | Something went wrong on our side. Quote the request ID if you contact us. |
Example
Example request
curl "https://sandbox.myclaimhouse.com/api/v1/claims?state=queued&limit=25" \
-H "Authorization: Bearer $CLAIMHOUSE_KEY"Example response: 200
{
"data": [
{
"id": "clm_01JM000000E00800000000002G",
"object": "claim",
"kind": "claim",
"state": "queued",
"next_step": "This claim is queued and goes out in the next batch.",
"frequency": "original",
"parent_id": null,
"patient_control_number": "CH4Q7M2K9TRB",
"office": {
"id": "off_01JM000000E008000000000003",
"name": "Example Family Dental"
},
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"rendering_provider": {
"id": "prv_01JM000000E008000000000005",
"first_name": "Riley",
"last_name": "Example",
"npi": "1999990017"
},
"patient_name": {
"first_name": "Alex",
"last_name": "Example"
},
"service_dates": {
"first": "2026-09-24",
"last": "2026-09-24"
},
"totals": {
"charge": "1140.00",
"lines": 1
},
"payment": null,
"estimate": null,
"converted_from": null,
"converted_to": null,
"patient_id": "pat_01JM000000E00800000000004K",
"request_id": "req_01JM000000E00800000000002J",
"created_at": "2026-09-24T21:00:00.120000+00:00",
"updated_at": "2026-09-24T21:00:00.310000+00:00"
}
],
"next_cursor": null
}