Get one message
Returns the aggregated detail for a single message (the same
V1Message projection as the list endpoint). Lookup is by the
SES-issued message id, not an internal UUID. Cross-org lookups and
unknown ids both return 404 not_found — no information leak about
whether a message exists in another org. Detail lookups go further
back than your plan's analytics-retention window: up to 365 days of
message detail is kept regardless of plan tier. Very old ids will
eventually 404 once they fall outside that window.
Path parameters
id string required SES message id (the SES-issued string, not a UUID).
Responses
Errors follow the RFC 7807 problem format — see the error reference.
id string required channel string optional template string optional The SES template name the message was sent with — the value the
template filter matches. Absent when the message was not sent
from a SendOps template.
template_id string<uuid> optional The SendOps template template belongs to. Absent when no current template has that SES name.
template_name string optional That template's display name.
source object optional What in SendOps sent the message. Absent for mail your own application sent through the same SES account, and for messages sent before SendOps recorded sources.
Fields of source:
type string enum required One of: workflow, broadcast, broadcast_test
id string<uuid> required The workflow or broadcast id.
name string | null required The workflow's or broadcast's name; null once it has been deleted.
from string required to string required The recipient's full email address, in the clear. It is never
masked or truncated, and api.messages.view alone is enough to
read it — api.messages.unmask_recipients gates searching by a
recipient, not seeing one. This field is personal data.
subject string optional sent_at string<date-time> required status string required last_event_at string<date-time> optional code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json