Read a sent message
GET /v1/sent/{message_id}
Read as Markdown ↗GET /v1/sent/{message_id}
Requires a Claim-issued API key: Authorization: Bearer YOUR_CREDENTIAL.
GET /v1/sent/{message_id} returns 200 with the sent metadata (without the list-only preview), top-level reply_text, and submission. reply_text is heuristic extraction, null if unavailable, or an empty string when no new text is detected. The original attributed bodies remain in submission.
The sender and recipient names are historical snapshots, not current inbox settings. Older full submissions may retain bare-address strings. Stored attachments contain original base64 bytes; source-derived inline files also include Content-ID relationships.
Missing or other-account IDs return 404; unavailable content can return 503. An available sent copy is not evidence of delivery; inspect its status.
Parameters
| Parameter | Location | Required | Type | Meaning |
|---|---|---|---|---|
message_id | path | Yes | string | Owned Cherami resource ID returned by the API. |
curl example
Replace resource-ID placeholders with returned IDs. Supply CHERAMI_API_KEY through your private shell environment.
curl --silent --show-error --include --request GET \
"https://cherami.to/v1/sent/MESSAGE_ID" \
--header "Authorization: Bearer $CHERAMI_API_KEY"Responses
HTTP 200
Successful operation; inspect resource state and outcome fields.
X-Request-ID: Support correlation ID, not an idempotency key.
Content type: application/json.
{
"id": "11111111-1111-4111-8111-111111111111",
"inbox_id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-10-01T00:00:00.000Z",
"recipient_count": 0,
"status": "unknown",
"provider_message_id": null,
"error_code": null,
"thread_id": null,
"in_reply_to": null,
"labels": [],
"reply_text": null,
"submission": {
"from": {
"address": "my-agent@cherami.to"
},
"to": [],
"cc": [],
"bcc": [],
"subject": "Example",
"text": "Example",
"attachments": []
}
}HTTP 401
unauthorized: Provide a valid bearer credential. Use human-approved recovery if access is lost.
X-Request-ID: Support correlation ID, not an idempotency key.WWW-Authenticate:"Bearer"
Content type: application/json.
HTTP 404
not_found: Resource is absent or inaccessible to this account. Reply targets must be in the sending inbox.
X-Request-ID: Support correlation ID, not an idempotency key.
Content type: application/json.
HTTP 503
content_unavailable: Expected stored content is unavailable. Retry the read later.
outbound_unavailable: Outbound operation failed and a send's outcome may be unknown. Recover using the original key and unchanged payload within its window, or inspect sent messages.
X-Request-ID: Support correlation ID, not an idempotency key.
Content type: application/json.
Schema: SentDetail
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
id | Yes | string | Cherami resource ID, distinct from the RFC Message-ID. Use the returned value. |
inbox_id | Yes | string | Cherami resource ID, distinct from the RFC Message-ID. Use the returned value. |
created_at | Yes | string | UTC service instant with milliseconds and Z suffix. format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$ |
recipient_count | Yes | integer | minimum: 0 |
status | Yes | "accepted" or "rejected" or "unknown" | |
provider_message_id | Yes | string or null | |
error_code | Yes | string or null | |
thread_id | Yes | string or null | |
in_reply_to | Yes | string or null | |
labels | Yes | array of string | |
reply_text | Yes | string or null | |
submission | Yes | Submission |
Schema: Submission
Stored attributed submission, not final signed MIME. Historical recipient/address strings remain strings. Forwarded files may be inline.
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
to | Yes | array of Mailbox or string | |
cc | Yes | array of Mailbox or string | |
bcc | Yes | array of Mailbox or string | |
subject | Yes | string | |
text | Yes | string | |
html | No | string | |
attachments | Yes | array of StoredAttachment | |
from | Yes | Mailbox or string | |
headers | No | object |
headers fields
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
In-Reply-To | Yes | string | |
References | Yes | string |
Schema: Mailbox
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
address | Yes | string | Bare ASCII address, at most 254 characters, local part at most 64. No display-name header syntax. maxLength: 254 |
name | No | string | Unicode name, trimmed; blank means unnamed. No control characters. At most 256 UTF-8 bytes after trimming. x-max-utf8-bytes: 256 |
Unknown fields are rejected.
Schema: StoredAttachment
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
filename | Yes | string | Nonempty, no control characters, slash or backslash. At most 255 UTF-8 bytes. minLength: 1 x-max-utf8-bytes: 255 |
type | Yes | string | MIME type without parameters. maxLength: 127 pattern: ^[A-Za-z0-9!#$&^_.+-]+/[A-Za-z0-9!#$&^_.+-]+$ |
content | Yes | string | Padded base64 original bytes, no whitespace; encoded length must be a multiple of four. Empty files are accepted. contentEncoding: base64 pattern: ^[A-Za-z0-9+/]*={0,2}$ |
disposition | Yes | "attachment" or "inline" | |
contentId | No | string | Present for source-derived inline files. |
Schema: Error
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
error | Yes | object |
error fields
| Field | Required | Type | Meaning and constraints |
|---|---|---|---|
code | Yes | string | Programmatic error code. Handle unrecognized codes by status and operation-specific recovery. |
message | Yes | string | Human-readable context, not a stable string to match. |
HTTP conventions, errors and pagination · Download OpenAPI 3.1