Skip to Content
EmailGet Email

Get Email

GET /v1/emails/:id

Retrieves an email with its current status and full event history.

Example

const { data, error } = await retransmit.emails.get("em_xxxxxxxxxxxx");

Response

200 OK

{ "id": "em_xxxxxxxxxxxx", "batch_id": null, "from": "Acme <hello@yourdomain.com>", "to": ["user@example.com"], "cc": null, "bcc": null, "reply_to": null, "subject": "Your receipt", "marketing": false, "tags": [{ "name": "category", "value": "receipt" }], "headers": { "X-Entity-Ref-ID": "order_4821" }, "status": "delivered", "error": null, "bounce_reason": null, "created_at": "2026-09-01T12:00:00.000Z", "scheduled_at": null, "last_event_at": "2026-09-01T12:00:03.000Z", "events": [ { "type": "email.sent", "created_at": "2026-09-01T12:00:01.000Z" }, { "type": "email.delivered", "created_at": "2026-09-01T12:00:03.000Z" } ], "attachments": [ { "id": "att_xxxxxxxxxxxx", "filename": "invoice.pdf", "content_type": "application/pdf", "size": 48213, "content_id": null, "inline": false } ] }

attachments lists what was sent, without download links. To download a file, use Attachments.

Email statuses

StatusMeaning
queuedWaiting for the worker, or being retried.
scheduledScheduled for a later send.
sentHanded to the upstream provider.
delivery_delayedThe receiving server temporarily deferred delivery.
deliveredAccepted by the recipient’s mail server.
openedThe recipient opened the email.
clickedThe recipient clicked a link.
bouncedThe recipient’s server permanently rejected it.
complainedThe recipient marked it as spam.
suppressedNot sent. The address is on a suppression list.
canceledA scheduled send was canceled. See Schedule Email.
rejectedRejected before sending.
failedThe send failed after all retries. error contains the reason.

Bounce reasons

When the status is bounced, bounce_reason says why the receiving server refused the message, read from the SMTP response it returned. error carries the same thing as a sentence, with the raw response.

The distinction that matters is whether the address is bad or whether your sending was refused. Only the first kind adds the recipient to your suppression list; the second leaves the address alone, because the mailbox is fine and will accept mail again once the underlying problem is fixed.

ReasonSuppressedMeaning
mailbox_not_foundYesNo account with that address.
mailbox_inactiveYesThe account is disabled, suspended or unused.
dns_failureYesThe domain has no reachable mail server.
policy_blockYesA rule on the recipient’s side refused the message, such as accepting internal mail only.
provider_suppressedYesThe address is on the upstream provider’s suppression list from an earlier bounce.
mailbox_fullNoOver quota. Usually clears on its own.
spam_blockNoA spam filter rejected the content. Check the subject, links and text-to-image ratio.
reputation_blockNoYour sending IP or domain is blocked or on a blocklist.
authentication_failureNoSPF, DKIM or DMARC did not pass at the receiver. Check the domain’s DNS records.
rate_limitedNoThe receiving server is throttling you. Send more slowly.
message_too_largeNoOver the receiver’s size limit. Link to large files instead of attaching them.
content_rejectedNoAn attachment or the body was refused, often by a virus scanner.
unknownYesThe server gave no reason we recognise. Treated as a bad address, since it cannot be told apart from one.

No mailbox provider tells a sender whether a message reached the inbox or the spam folder, so a spam_block bounce is the only direct signal you get that filtering is happening. Emails that are silently filed as junk are delivered as far as the API is concerned.

Errors

StatusCodeCause
404not_foundNo email with this id on your account.
401unauthorizedMissing, malformed, or revoked API key.
Last updated on