API Docs

Delivery status

Interpret asynchronous sending results without confusing queue acceptance with final recipient delivery.

Read message status

GET /api/v1/outbound-messages returns recent organization messages newest first. GET /api/v1/outbound-messages/{id} returns one message, its recipients, and state-change events. Use a read or read_write token.

The authenticated Console provides the same customer-facing history for manual inspection.

Message and recipient states

StateMeaningFinal?
pendingThe accepted message is waiting to be processed.No
sendingA delivery attempt is in progress.No
retry_readyA previous processing attempt will be retried.No
smtp_acceptedThe SMTP server accepted the message for onward delivery.No
deferredRecipient delivery is temporarily delayed and may be attempted again.No
deliveredThe destination accepted delivery for this recipient.Yes
bouncedThe destination permanently rejected this recipient.Yes
expiredTemporary delivery attempts ended without acceptance.Yes
failedProcessing failed before a later recipient outcome was available.Yes

Multiple recipients

A message can have different outcomes for different recipients. Inspect every recipient rather than deriving success from the message-level queue state. Bcc recipients appear in authenticated delivery data but are not added to visible message headers.

Polling safely

  • Keep the outbound message ID returned by the send request.
  • Poll the detail endpoint with increasing intervals rather than continuously listing all messages.
  • Stop when every recipient reaches a final state or when your own business timeout expires.
  • Do not resend merely because a final state has not appeared yet. Retrying a send is a separate operation and requires the original idempotency key.

Diagnostics and privacy

Use recipient events and diagnostics to investigate failures, but do not expose addresses or delivery responses to unauthorized users or place them in public logs. A successful remote acceptance does not guarantee that a recipient will read the message or that later filtering will not occur.