Events
Get an event
GET/api/v1/events/{id}
One event of the key's organization and mode. An event of another organization or of the other mode is not found.
Needs a key with read permission.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | An event ID (evt_...). |
Response
The event. Status 200.
| Name | Type | Description |
|---|---|---|
| id | string | An ID that starts with evt_. |
| object | string | Always `event`. |
| type | string | One of: `eligibility.completed`, `api_key.created`, `api_key.revoked`, `claim.validated`, `claim.needs_attention`, `claim.queued`, `claim.submitted`, `claim.accepted`, `claim.rejected`, `claim.status_updated`, `claim.voided`, `batch.acknowledged`, `attachment.completed`, `payer_request.received`, `era.received`, `claim.paid`, `claim.denied`, `claim.payment_reversed`, `predetermination.returned`. |
| sequence | integer | The event's place in the history of its resource, starting at 1. Events of one resource can arrive out of order: sort by this.At least 1. |
| created_at | string (date-time) | |
| data | object | The facts about the resource. Its fields depend on type, as listed below. |
| data.id | string | An ID that starts with elg_.When type is `eligibility.completed`. |
| data.object | string | When type is `eligibility.completed`.Always `eligibility_check`. |
| data.office_id | string | An ID that starts with off_.When type is `eligibility.completed`. |
| data.payer | object | When type is `eligibility.completed`. |
| data.payer.id | string | An ID that starts with pyr_.When type is `eligibility.completed`. |
| data.payer.payer_id | string | The payer's own payer ID.When type is `eligibility.completed`. |
| data.payer.name | string | When type is `eligibility.completed`. |
| data.state | string | When type is `eligibility.completed`.One of: `pending`, `completed`. |
| data.outcome | string or null | How the check ended; null while pending.When type is `eligibility.completed`.One of: `answered`, `rejected`, `payer_unavailable`, `error`. |
| data.status | string or null | The coverage status: active, inactive or unknown; null when there is no answer.When type is `eligibility.completed`.One of: `active`, `inactive`, `unknown`. |
| data.billing | object or null | Null while the check is pending: it has no usage record yet.When type is `eligibility.completed`. |
| data.billing.charged | boolean | When type is `eligibility.completed`. |
| data.billing.state | string | When type is `eligibility.completed`.One of: `billable`, `not_billable`. |
| data.billing.reason | string | When type is `eligibility.completed`.One of: `test_mode`, `answered`, `payer_rejected`, `payer_side_rejection`, `payer_unavailable`, `network_error`, `internal_error`, `cache_hit`. |
| data.billing.label | string | Why the check was or was not charged, in a sentence.When type is `eligibility.completed`. |
| data.cache | object | When type is `eligibility.completed`. |
| data.cache.state | string | When type is `eligibility.completed`.One of: `fresh`, `hit`. |
| data.cache.source_id | string or null | An ID that starts with elg_.When type is `eligibility.completed`. |
| data.parent_id | string or null | The rejected check this one corrects.When type is `eligibility.completed`. |
| data.request_id | string or null | The API request that made the check (the x-request-id of its response); null for a check made in the dashboard.When type is `eligibility.completed`. |
| data.tenant_reference | value | Your own reference, sent with the check.When type is `eligibility.completed`. |
| data.created_at | string (date-time) | When type is `eligibility.completed`. |
| data.completed_at | string (date-time) | When type is `eligibility.completed`. |
| data.id | string | An ID that starts with key_.When type is `api_key.created` or `api_key.revoked`. |
| data.object | string | When type is `api_key.created` or `api_key.revoked`.Always `api_key`. |
| data.name | string | When type is `api_key.created` or `api_key.revoked`. |
| data.mode | string | When type is `api_key.created` or `api_key.revoked`.One of: `test`, `live`. |
| data.permissions | array of string | When type is `api_key.created` or `api_key.revoked`.Each item is one of: `read`, `submit`. |
| data.organization | object | When type is `api_key.created` or `api_key.revoked`. |
| data.organization.id | string | An ID that starts with org_.When type is `api_key.created` or `api_key.revoked`. |
| data.organization.object | string | When type is `api_key.created` or `api_key.revoked`.Always `organization`. |
| data.organization.name | string | When type is `api_key.created` or `api_key.revoked`. |
| data.id | string | An ID that starts with clm_.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.object | string | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Always `claim`. |
| data.office_id | string | An ID that starts with off_.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payer | object | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payer.id | string | An ID that starts with pyr_.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payer.payer_id | string | The payer's own payer ID.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payer.name | string | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.kind | string | claim or predetermination.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.One of: `claim`, `predetermination`. |
| data.state | string | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| data.previous_state | string or null | The state the claim was in before; null when the event did not change it.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.One of: `draft`, `validated`, `needs_attention`, `queued`, `submitted`, `accepted_clearinghouse`, `accepted_payer`, `rejected`, `voided`, `paid`, `denied`, `reconciled`, `returned`. |
| data.frequency | string | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.One of: `original`, `replacement`, `void`. |
| data.parent_id | string or null | The claim a void transaction voids.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.request_id | string or null | The API request that made the claim; null for a claim made in the dashboard.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.file | object or null | The file that caused the event, with its control numbers.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.file.name | string | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.file.interchange_control_number | value | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.file.group_control_number | value | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.file.transaction_control_number | value | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.status | object or null | The status category and code that caused the event.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.status.category | value | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.status.code | value | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payment | object | For claim.paid, claim.denied and claim.payment_reversed: the remittance (ERA) and its amounts.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payment.era_id | string | An ID that starts with era_.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payment.status_code | string | The payer's claim status in the remittance (CLP02), such as 1 (processed as primary), 4 (denied) or 22 (a reversal).When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.payment.paid | string | What the payer paid, in dollars (negative for a reversal).When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.payment.allowed | string or null | The amount the payer allowed, when it said.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.payment.patient_responsibility | string | What the patient owes, as the payer says.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.claim_payment | object or null | For claim.paid, claim.denied and claim.payment_reversed: the claim's own figures after this payment (null when nothing stands), as GET /claims/{id} shows them.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.claim_payment.outcome | string | Whether the claim stands paid or denied after this payment.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.One of: `paid`, `denied`. |
| data.claim_payment.paid | string | What the payer has paid on the claim in all.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.claim_payment.allowed | string or null | The amount allowed by the claim's current payment, when it said.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.claim_payment.patient_responsibility | string | What the patient owes in all.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.estimate | object | For predetermination.returned: the ERA that carried the estimate, and its amounts. Never a payment.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.estimate.era_id | string | An ID that starts with era_.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.estimate.allowed | string or null | What the payer would allow, when it said.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.estimate.pay | string | What the payer would pay once the treatment is done.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.estimate.patient | string | The patient's estimated share.When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`.Matches `^-?\d+\.\d{2}$`. |
| data.created_at | string (date-time) | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.occurred_at | string (date-time) | When type is `claim.validated` or `claim.needs_attention` or `claim.queued` or `claim.submitted` or `claim.accepted` or `claim.rejected` or `claim.status_updated` or `claim.voided` or `claim.paid` or `claim.denied` or `claim.payment_reversed` or `predetermination.returned`. |
| data.id | string | An ID that starts with fil_.When type is `batch.acknowledged`. |
| data.object | string | When type is `batch.acknowledged`.Always `batch`. |
| data.name | string | The file name (YYYYMMDDHHMMSSmmm.837).When type is `batch.acknowledged`. |
| data.result | string | accepted: its claims are accepted by the clearinghouse. rejected: its claims are back in the queue for the next batch.When type is `batch.acknowledged`.One of: `accepted`, `rejected`. |
| data.claim_count | integer | When type is `batch.acknowledged`.At least -9007199254740991. |
| data.interchange_control_number | value | When type is `batch.acknowledged`. |
| data.group_control_number | value | When type is `batch.acknowledged`. |
| data.transaction_control_number | value | When type is `batch.acknowledged`. |
| data.acknowledgement | object | The 997 file that answered.When type is `batch.acknowledged`. |
| data.acknowledgement.name | string | When type is `batch.acknowledged`. |
| data.created_at | string (date-time) | When type is `batch.acknowledged`. |
| data.occurred_at | string (date-time) | When type is `batch.acknowledged`. |
| data.id | string | An ID that starts with att_.When type is `attachment.completed`. |
| data.object | string | When type is `attachment.completed`.Always `attachment`. |
| data.office_id | string | An ID that starts with off_.When type is `attachment.completed`. |
| data.claim_id | string or null | The claim the attachment was made for; null when it was made for none.When type is `attachment.completed`. |
| data.payer | object | When type is `attachment.completed`. |
| data.payer.id | string | An ID that starts with pyr_.When type is `attachment.completed`. |
| data.payer.payer_id | string | The payer's own payer ID.When type is `attachment.completed`. |
| data.payer.name | string | When type is `attachment.completed`. |
| data.kind | string | When type is `attachment.completed`.One of: `unsolicited`, `solicited`. |
| data.state | string | When type is `attachment.completed`.One of: `open`, `closed`. |
| data.attachment_number | value | The number the attachment network gave it.When type is `attachment.completed`. |
| data.payer_request_id | string or null | The payer request a solicited attachment answers.When type is `attachment.completed`. |
| data.document_count | integer | When type is `attachment.completed`.At least -9007199254740991. |
| data.request_id | string or null | The API request that made the attachment; null for one made in the dashboard.When type is `attachment.completed`. |
| data.created_at | string (date-time) | When type is `attachment.completed`. |
| data.closed_at | string (date-time) or null | When type is `attachment.completed`. |
| data.occurred_at | string (date-time) | When type is `attachment.completed`. |
| data.id | string | An ID that starts with prq_.When type is `payer_request.received`. |
| data.object | string | When type is `payer_request.received`.Always `payer_request`. |
| data.claim_id | string or null | An ID that starts with clm_.When type is `payer_request.received`. |
| data.payer | object | When type is `payer_request.received`. |
| data.payer.id | string | An ID that starts with pyr_.When type is `payer_request.received`. |
| data.payer.payer_id | string | The payer's own payer ID.When type is `payer_request.received`. |
| data.payer.name | string | When type is `payer_request.received`. |
| data.reference_number | string | The payer's own reference number for the request.When type is `payer_request.received`. |
| data.state | string | When type is `payer_request.received`.One of: `open`, `answered`. |
| data.source | string | When type is `payer_request.received`.One of: `network`, `staff`. |
| data.due_date | value | The date the payer wants the answer by (YYYY-MM-DD), when it said.When type is `payer_request.received`. |
| data.created_at | string (date-time) | When type is `payer_request.received`. |
| data.occurred_at | string (date-time) | When type is `payer_request.received`. |
| data.id | string | An ID that starts with era_.When type is `era.received`. |
| data.object | string | When type is `era.received`.Always `era`. |
| data.state | string | When type is `era.received`.One of: `needs_review`, `posted`. |
| data.payer | object or null | The payer in the directory, when the remittance names one we know; null otherwise (read the ERA for the name as sent).When type is `era.received`. |
| data.payer.id | string | An ID that starts with pyr_.When type is `era.received`. |
| data.payer.payer_id | string | The payer's own payer ID.When type is `era.received`. |
| data.payer.name | string | When type is `era.received`. |
| data.payment | object | When type is `era.received`. |
| data.payment.method | string | ACH (an electronic transfer), CHK (a check), NON (no payment) or another code as sent.When type is `era.received`. |
| data.payment.trace_number | string | The EFT trace or check number: matches the deposit in your bank account.When type is `era.received`. |
| data.payment.date | value | The payment date (YYYY-MM-DD).When type is `era.received`. |
| data.payment.total | string | The amount paid, in dollars.When type is `era.received`.Matches `^-?\d+\.\d{2}$`. |
| data.balanced | boolean | Whether the remittance adds up: false flags it for review.When type is `era.received`. |
| data.claim_count | integer | When type is `era.received`.At least -9007199254740991. |
| data.matched_count | integer | When type is `era.received`.At least -9007199254740991. |
| data.unmatched_count | integer | When type is `era.received`.At least -9007199254740991. |
| data.received_at | string (date-time) | When type is `era.received`. |
| data.occurred_at | string (date-time) | When type is `era.received`. |
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. |
| 404 | NOT_FOUND | Not found. |
| 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/events/evt_01JM000000E008000000000020" \
-H "Authorization: Bearer $CLAIMHOUSE_KEY"Example response: 200
{
"id": "evt_01JM000000E008000000000020",
"object": "event",
"type": "eligibility.completed",
"sequence": 1,
"created_at": "2026-03-10T15:30:00.430000+00:00",
"data": {
"id": "elg_01JM000000E00800000000000G",
"object": "eligibility_check",
"office_id": "off_01JM000000E008000000000003",
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"state": "completed",
"outcome": "answered",
"status": "active",
"billing": {
"charged": false,
"state": "not_billable",
"reason": "test_mode",
"label": "Not billed: test mode"
},
"cache": {
"state": "fresh",
"source_id": null
},
"parent_id": null,
"request_id": "req_01JM000000E008000000000010",
"tenant_reference": "visit-1042",
"created_at": "2026-03-10T15:30:00.250000+00:00",
"completed_at": "2026-03-10T15:30:00.430000+00:00"
}
}