Attachments
List attachments
GET/api/v1/attachments
The attachments of the key's organization in the key's mode, newest first, each with its documents. Filter by state, kind or the claim it was made for, or find what a request made by its request_id or its Idempotency-Key (after a 504, before sending it again). Needs a key with read (a key with submit only sees the attachments it made).
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. |
| state | string | optional | Only open or closed attachments.One of: `open`, `closed`. |
| kind | string | optional | Only unsolicited or solicited attachments.One of: `unsolicited`, `solicited`. |
| claim_id | string | optional | Only the attachments made for this claim (clm_...). |
| request_id | string | optional | Only the attachment made by this API request (the x-request-id of its response, req_...). |
| idempotency_key | string | optional | Only the attachment made with this Idempotency-Key (what a request that timed out made). |
Response
A page of attachments. Status 200.
| Name | Type | Description |
|---|---|---|
| data | array of object | |
| data[].id | string | An ID that starts with att_. |
| data[].object | string | Always `attachment`. |
| data[].state | string | open while documents can be added; closed once sent, with its number. Nothing changes after closing.One of: `open`, `closed`. |
| data[].kind | string | unsolicited (sent with a claim); solicited (answering a payer request: never on a claim file).One of: `unsolicited`, `solicited`. |
| data[].claim_id | string or null | The claim it was made for, if any. Which claims carry it is the claim's attachments field. |
| data[].office_id | string | An ID that starts with off_. |
| 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[].payer_request_id | string or null | An ID that starts with prq_. |
| data[].payer_reference | value | The payer's reference number, for a solicited attachment. |
| data[].narrative | string | What the documents show, in words: at most 2000 characters. |
| data[].documents | array of object | |
| data[].documents[].id | string | An ID that starts with doc_. |
| data[].documents[].object | string | Always `attachment_document`. |
| data[].documents[].document_type | string | The document type code (GET /attachments/document_types). |
| data[].documents[].medium | string | film (an X-ray or a photo: has an image date and an orientation) or paper.One of: `film`, `paper`. |
| data[].documents[].image_date | string (date) or null | |
| data[].documents[].orientation | string or null | One of: `left`, `right`. |
| data[].documents[].file_name | string | The name the file was sent with, for display: the last part of it, without control characters. The stored file is named by the document ID. |
| data[].documents[].converted_from | string or null | png when the upload was a PNG, converted to the JPEG that is stored and sent; null when it was a JPEG.One of: `png`. |
| data[].documents[].size | integer | The size in bytes of the image as stored and sent: the upload rewritten without its metadata (a PNG converted to a JPEG first).At least -9007199254740991. |
| data[].documents[].md5 | string | The MD5 of the stored image (the JPEG), lower-case hex. |
| data[].documents[].sent_to_network | boolean | True once the document has been sent to the attachment network (closing sends it). |
| data[].documents[].created_at | string (date-time) | |
| data[].attachment_number | value | The number the attachment network gave when it closed; null while open. |
| data[].claim_file | object or null | How a claim carrying it refers to it; null while open. |
| data[].claim_file.pwk | string | What the claim file carries in PWK06 (loop 2300). |
| data[].claim_file.nte | string | The note the claim file carries for it (NTE, loop 2300). |
| data[].request_id | string or null | The API request that made it; null for one made in the dashboard. |
| data[].created_at | string (date-time) | |
| data[].updated_at | string (date-time) | |
| data[].closed_at | string (date-time) or null | |
| 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/attachments?state=closed" \
-H "Authorization: Bearer $CLAIMHOUSE_KEY"Example response: 200
{
"data": [
{
"id": "att_01JM000000E00800000000003G",
"object": "attachment",
"state": "closed",
"kind": "unsolicited",
"claim_id": "clm_01JM000000E00800000000002G",
"office_id": "off_01JM000000E008000000000003",
"payer": {
"id": "pyr_01JM000000E008000000000004",
"payer_id": "00000",
"name": "Example Dental Plan"
},
"payer_request_id": null,
"payer_reference": null,
"narrative": "Fractured distal cusp on tooth 3, shown on the bitewing.",
"documents": [
{
"id": "doc_01JM000000E00800000000003H",
"object": "attachment_document",
"document_type": "bitewing_xray",
"medium": "film",
"image_date": "2026-09-24",
"orientation": "right",
"file_name": "bitewing-right.jpg",
"converted_from": null,
"size": 184211,
"md5": "3f2a9c1e5b7d4f60a8c2e1d3b5f7a9c0",
"sent_to_network": true,
"created_at": "2026-09-24T20:57:20.000000+00:00"
},
{
"id": "doc_01JM000000E00800000000003J",
"object": "attachment_document",
"document_type": "narrative",
"medium": "paper",
"image_date": null,
"orientation": null,
"file_name": "narrative.png",
"converted_from": "png",
"size": 92480,
"md5": "7d1e3c5a9b2f4d6e8a0c1b3d5f7e9a2b",
"sent_to_network": true,
"created_at": "2026-09-24T20:57:20.000000+00:00"
}
],
"attachment_number": "100001042",
"claim_file": {
"pwk": "NEA100001042",
"nte": "NEA#100001042"
},
"request_id": "req_01JM000000E00800000000003K",
"created_at": "2026-09-24T20:57:00.000000+00:00",
"updated_at": "2026-09-24T20:58:10.000000+00:00",
"closed_at": "2026-09-24T20:58:10.000000+00:00"
}
],
"next_cursor": null
}