Retrieve an email
GET /emails/{id}
Returns the message with its full delivery timeline, including the receiving server’s own diagnostic text.
{
"id": "1042",
"from": "hello@yourdomain.com",
"to": ["someone@example.com"],
"subject": "Your receipt",
"status": "bounced",
"created_at": 1735689600,
"html": "<p>Thanks.</p>",
"events": [
{ "kind": "queued", "occurred_at": 1735689600 },
{ "kind": "sent", "occurred_at": 1735689601 },
{
"kind": "bounced",
"bounce_type": "Permanent",
"recipient": "someone@example.com",
"detail": "550 5.1.1 user unknown",
"occurred_at": 1735689640
}
]
}
bounce_type is Permanent, Transient or Undetermined, passed through
from the receiving infrastructure unchanged.
Status is monotonic. A message never moves backwards, so a late delivery notice for one recipient cannot overwrite a bounce recorded for another.
Content has a retention window; the record does not. html and text are
kept for your plan’s retention period — 30 days by default — after which this
endpoint still returns the message, its status and its full timeline, with the
body omitted. Nothing about how the content is stored is visible to you: it
moves out of the hot database within days, and reads are served transparently
either way.