Skip to the page
Chapters

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

Query parameters
NameTypeRequiredDescription
limitintegeroptionalHow many items to return, from 1 to 100. Default 25.At least 1.At most 100.
cursorstringoptionalThe next_cursor of the previous page, to get the page after it. Opaque: pass it back unchanged.
kindstringoptionalclaim (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`.
statestringoptionalOnly claims in this state.One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`.
office_idstringoptionalOnly claims billed by this office (off_...).
payer_idstringoptionalOnly claims to this payer (pyr_...).
created_afterstring (date-time)optionalOnly claims created after this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z).
created_beforestring (date-time)optionalOnly claims created before this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z).
sent_fromstring (date-time)optionalOnly 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_tostring (date-time)optionalOnly claims first sent before this instant (ISO 8601 with an offset, such as 2026-10-01T00:00:00Z).
request_idstringoptionalOnly the claim made by this API request (the x-request-id of its response, req_...).
patient_control_numberstringoptionalOnly the claim with this patient control number, in any case.

Response

A page of claim summaries. Status 200.

Response fields
NameTypeDescription
dataarray of object
data[].idstringAn ID that starts with clm_.
data[].objectstringAlways `claim`.
data[].kindstringclaim, or predetermination (sent before treatment; its answer is an estimate). Set when it was made.One of: `claim`, `predetermination`.
data[].statestringOne of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`.
data[].next_stepstringOne sentence saying what happens next, or what you must do.
data[].frequencystringoriginal; replacement for a resubmission of a claim the payer has; void for a void transaction.One of: `original`, `replacement`, `void`.
data[].parent_idstring or nullThe claim a void transaction voids.
data[].patient_control_numberstringYour identifier for the claim, or the one we made: unique in your organization, sent on the claim and returned on its status.
data[].officeobject
data[].office.idstringAn ID that starts with off_.
data[].office.namestring
data[].payerobject
data[].payer.idstringAn ID that starts with pyr_.
data[].payer.payer_idstringThe payer's own payer ID.
data[].payer.namestring
data[].rendering_providerobject
data[].rendering_provider.idstringAn ID that starts with prv_.
data[].rendering_provider.first_namestring
data[].rendering_provider.last_namestring
data[].rendering_provider.npistring
data[].patient_nameobjectThe patient: the dependent when there is one, else the subscriber.
data[].patient_name.first_namestring
data[].patient_name.last_namestring
data[].patient_idstring or nullThe 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_datesobject
data[].service_dates.firststring (date) or null
data[].service_dates.laststring (date) or null
data[].totalsobject
data[].totals.chargestringThe sum of the line fees, in dollars, as a decimal string.Matches `^-?\d+\.\d{2}$`.
data[].totals.linesintegerAt least -9007199254740991.
data[].paymentobject or nullWhat 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.outcomestringpaid 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_idstringThe ERA of the claim's current payment (era_...): the latest one, when that is not certain.
data[].payment.paidstringWhat the payer paid in all: the sum of every payment applied, reversals subtracted.Matches `^-?\d+\.\d{2}$`.
data[].payment.allowedstring or nullThe amount the current payment allowed, when it said.Matches `^-?\d+\.\d{2}$`.
data[].payment.patient_responsibilitystringWhat the patient owes, as the payer says (deductible, coinsurance and the like).Matches `^-?\d+\.\d{2}$`.
data[].payment.payment_datestring (date) or nullThe payment date of the ERA.
data[].payment.reconciled_atstring (date-time) or nullWhen you confirmed you posted the payment (state reconciled); null until then.
data[].estimateobject or nullA predetermination's estimate (state returned); null before it arrives, and always on a claim.
data[].estimate.era_idstringThe ERA that carried the estimate (era_...).
data[].estimate.allowedstring or nullWhat the payer would allow, when it said.Matches `^-?\d+\.\d{2}$`.
data[].estimate.paystringWhat the payer would pay once the treatment is done.Matches `^-?\d+\.\d{2}$`.
data[].estimate.patientstringThe patient's estimated share.Matches `^-?\d+\.\d{2}$`.
data[].estimate.returned_atstring (date-time)When the estimate arrived.
data[].estimate.linesarray of objectThe estimate per line, where the payer said (line_number is the predetermination's).
data[].estimate.lines[].line_numberintegerAt least 1.
data[].estimate.lines[].allowedstring or nullAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
data[].estimate.lines[].paystringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
data[].estimate.lines[].patientstringAn amount in dollars, as a decimal string with two places (such as "113.60").Matches `^-?\d+\.\d{2}$`.
data[].converted_fromstring or nullOn a claim made from a predetermination: the predetermination.
data[].converted_tostring or nullOn a converted predetermination: the claim made from it.
data[].request_idstring or nullThe API request that made the claim (the x-request-id of its response); null for a claim made in the dashboard.
data[].created_atstring (date-time)
data[].updated_atstring (date-time)
next_cursorvaluePass as cursor to get the next page; null when there is no next page.

Errors

Errors
HTTP statusCodeWhat it means
401UNAUTHORIZEDA valid API key is required. Send it as "Authorization: Bearer <key>".
403PERMISSION_DENIEDThis API key is not allowed to do that.
422INVALID_REQUESTThe request is not valid.
504TIMEOUTThe 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).
500INTERNALSomething went wrong on our side. Quote the request ID if you contact us.

Example

Example request

Shell
curl "https://sandbox.myclaimhouse.com/api/v1/claims?state=queued&limit=25" \
  -H "Authorization: Bearer $CLAIMHOUSE_KEY"

Example response: 200

JSON
{
  "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
}