Thread-aware console reply from an org inbox
POST /v1/admin/orgs/{org_id}/projects/{project_id}/inboxes/{addr}/reply
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The full inbox address, URL-encoded (e.g. agent7%40extrovertmail.com).
Request Body required
Section titled “Request Body required ”Thread-aware reply. Exactly one of thread_id / message_id selects the parent; recipients default from that parent. Optional to replaces the derived To group, including reply-all. Subject and threading headers remain derived server-side. The resulting message must contain at most 50 combined To/Cc/Bcc recipients and 1,800,000 encoded bytes including headers, bodies and attachments.
object
Replace derived To recipients. Omit to retain defaults; an explicit empty list is invalid.
object
Include all original recipients (reply-all) when true.
Optional additional head assertion, validated for both thread and message selectors. Does not replace expected_context_version. Default replies target the newest message.
Context_version from the complete thread read used to compose this reply. Missing returns reply_context_required (422); changed returns reply_context_changed (409). Read the thread and reconsider the draft before retrying.
An outbound attachment on send/reply/forward.
object
Standard base64-encoded attachment bytes. Up to 20 attachments share the 1,800,000-byte encoded email limit with headers and both bodies.
Review Loop per-send assertion (see SendRequest.mode).
The agent’s “for the human reviewer” summary. summary is REQUIRED when the resolved mode is review (else the submit is 422).
object
Free-text intent summary (who/what/why).
Structured intent payload.
object
Opaque category id (cat_…) matched from the registry.
Agent-supplied confidence (0..1) in the category match (see SendRequest.category_confidence). Feeds the min_confidence auto-send gate only; the server never scores.
Opaque token from a fresh, unfiltered GET /v1/rules for this agent, project, and category.
DEPRECATED body-level alias for the Idempotency-Key header (see SendRequest.idempotency_key). Send the header instead.
Thread-aware reply. Exactly one of thread_id / message_id selects the parent; recipients default from that parent. Optional to replaces the derived To group, including reply-all. Subject and threading headers remain derived server-side. The resulting message must contain at most 50 combined To/Cc/Bcc recipients and 1,800,000 encoded bytes including headers, bodies and attachments.
object
Replace derived To recipients. Omit to retain defaults; an explicit empty list is invalid.
object
Include all original recipients (reply-all) when true.
Optional additional head assertion, validated for both thread and message selectors. Does not replace expected_context_version. Default replies target the newest message.
Context_version from the complete thread read used to compose this reply. Missing returns reply_context_required (422); changed returns reply_context_changed (409). Read the thread and reconsider the draft before retrying.
An outbound attachment on send/reply/forward.
object
Standard base64-encoded attachment bytes. Up to 20 attachments share the 1,800,000-byte encoded email limit with headers and both bodies.
Review Loop per-send assertion (see SendRequest.mode).
The agent’s “for the human reviewer” summary. summary is REQUIRED when the resolved mode is review (else the submit is 422).
object
Free-text intent summary (who/what/why).
Structured intent payload.
object
Opaque category id (cat_…) matched from the registry.
Agent-supplied confidence (0..1) in the category match (see SendRequest.category_confidence). Feeds the min_confidence auto-send gate only; the server never scores.
Opaque token from a fresh, unfiltered GET /v1/rules for this agent, project, and category.
DEPRECATED body-level alias for the Idempotency-Key header (see SendRequest.idempotency_key). Send the header instead.
Responses
Section titled “ Responses ”Accepted for delivery.
The outcome of a reply or forward.
object
Whether the accepted message has a resolvable saved Sent copy. Archive failure never resends mail.
Per-recipient counts by transport state. Absent states have count zero.
object
Opaque review id (rr_…) for the review row that governed this send. ADDITIVE. Every agent-plane send now creates one, so an agent that crashes after issuing the request can still call GET /v1/reviews/{id} and read closed / sent_message_id instead of guessing whether the message went out.
Invalid request.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.
Missing or invalid credential.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.
Resource not found.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.