Post email reply
Authorizations
JWT Bearer token obtained from authentication. Pass as: Authorization: Bearer
Path Parameters
ID of the email being replied to
^[cC][^\s-]{8,}$Body
Request body for replying to an email in-thread
Plain-text body of your reply (the quoted original is appended)
Agent to send as. Required with a master key; resolved automatically from an agent key.
^[cC][^\s-]{8,}$HTML body of your reply
Reply to every correspondent on the original (its To and Cc) rather than just the sender. Your own addresses are always excluded, so you never reply to yourself. Bcc recipients of your own sent mail are never resurfaced — that would disclose them to the whole thread.
Extra Cc recipients, added to any computed by replyAll
Bcc recipients for this reply
Attachments to include on the reply
Arbitrary metadata to store
Append the original message as a quoted block, the way a human mail client does. Default true. Set false to send only your own text — the recipient then sees no context, so only do this when the thread is already established.
Response
OK
Full message resource representation
Unique identifier of the message
^[cC][^\s-]{8,}$ID of the agent that sent or received the message
^[cC][^\s-]{8,}$ID of the inbox this message belongs to — the inbox it was delivered to (inbound) or sent from (outbound). Null when no inbox backs the address: SMS/MMS/voice messages, and email sent from an email identity that has no inbox (such as a custom-domain identity added to an agent). Pass it to GET /messages?inboxId= to list one inbox's mail.
^[cC][^\s-]{8,}$Communication channel used
EMAIL, SMS, MMS, VOICE Whether the message was inbound or outbound
INBOUND, OUTBOUND Current delivery status
QUEUED, SENT, DELIVERED, FAILED, BOUNCED, BLOCKED, PENDING_APPROVAL Sender address (email or phone number)
Recipient address (email or phone number)
Message subject line, or null for channels that do not support subjects
Plain-text content of the message
HTML content of the message, or null if not available
Plain-text body with the quoted reply chain and signature stripped — just what this sender actually wrote. Read this instead of body to avoid re-reading (and paying for) the whole thread on every message. Null when nothing was extracted: non-email channels, messages your agent sent, and mail received before this field existed — so extractedText ?? body is always correct. Best-effort and heuristic; body remains the verbatim source of truth. Known weak cases: forwards and bottom-posted replies have no separable 'new' part, so this returns the full body rather than nothing.
HTML body with quoted reply chains removed. Same semantics as extractedText; bodyHtml stays verbatim. Quoting styles that mark the chain with a sibling element rather than wrapping it (Outlook) are not stripped here — extractedText still is.
Raw message headers as key-value pairs, or null
Arbitrary metadata attached to the message, or null
Thread identifier for conversation grouping, or null
Workflow labels on this message. Always contains exactly one of the system labels unread or read; may also contain archived, spam (the inbound spam verdict — see includeSpam on list/search), and any labels you add yourself. Stored lowercase, deduped, and sorted. Change them with PATCH /messages/{id}/labels.
Message ID this message is replying to, or null
External identifier, or null. For email: the RFC 5322 Message-ID (bare, no angle brackets) — pass it as inReplyTo to reply in-thread. For SMS: the provider-assigned message id.
When this message was moved to Trash, or null if it is live. Deleted messages are hidden from listings unless deleted is set to include or only, and can be brought back with POST /messages/{id}/restore. Nothing purges them.
Timestamp when the message was sent, or null if not yet sent
Timestamp when the message was received, or null for outbound messages
File attachments associated with this message
Timestamp when the message record was created
Timestamp when the message record was last updated
