Inbound

Reply to a received email (the agent answers)

Sends a plain-text reply FROM the mailbox that received the message TO its Reply-To/From, threaded (In-Reply-To/References) and recorded in the conversation. Counts one quota unit and consumes warm-up like any outbound mail. Loop guard: the reply carries Auto-Submitted: auto-replied; replying to automated mail (Auto-Submitted, Precedence bulk/list/junk, null sender) is refused with 422 auto_submitted; at most 5 replies per message and 10 automated replies per conversation per hour (429). A message held by the agent-safety verdict answers 409 message_quarantined until a human releases it — the reply is never the tool that releases. When the message went to several mailboxes and only some copies are held (partial), the reply goes out from the first mailbox whose copy was delivered (or the one in from). Sending policies apply to replies as to /v1/send for the two actions that decide WHETHER mail leaves: recusar answers 422 policy_refused, and reter_para_aprovacao turns the reply into a draft awaiting a person (status held, requestedBy: policy:<name>) — that is how a key marked «require human approval» holds every reply of an agent. A key in sandbox accepts and freezes the reply without delivering it (status sandbox), even when hold or an approval policy is requested; no approval link is created. Sandbox on this endpoint comes from the key profile, not a request field or header.

post/inbound/{uid}/reply

Request

  • Base URL: https://api.oveyon.com/v1
  • URL: https://api.oveyon.com/v1/inbound/{uid}/reply
  • Auth: HTTP bearer

Path parameters

uidstring required

Request body

textstring required

Plain-text body of the reply. The From is always the mailbox that received the message; the To is the original Reply-To/From; In-Reply-To and References are set for you.

subjectstring

Optional. Defaults to Re: <original subject>. Line breaks are rejected (400 bad_subject).

idempotencyKeystring

Optional task/order key (or the Idempotency-Key header). Within the account, a retained key returns the original reply id for 24 hours from its first claim. After expiry a retry can create another message. Namespaced apart from /v1/send keys.

fromstring

Optional: which mailbox of the message replies (one of recipients[].to). Default: the first mailbox whose copy was delivered. A mailbox whose copy is held answers 409 recipient_quarantined; an address that did not receive the message, 422 from_not_recipient; an address outside ASCII, 400 with reason: address_not_ascii.

holdboolean

Hold the REPLY for a human to approve (status held); the key that replies does not approve (approve:holds). Ignored when the key itself is in sandbox (status sandbox).

holdTtlinteger

Seconds until the held reply expires (default 86400).

holdNotestring

What the agent wants the approver to know.

Response

Duplicate idempotency key — the earlier reply id

idstring uuid required

The id of the ORIGINAL message (the one the idempotencyKey created).

status'duplicate' required
messagestring required

Changes

No recorded changes to this operation across all 1 revision of this API.