Skip to content

Retrieve an email

GET https://api.mailpush.app/v1/emails/:id
Header Required Description
Authorization Yes Bearer followed by an API key of the account that sent the email.
Parameter Description
id The id returned by POST /v1/emails, em_....

200 OK

{
"id": "em_4b9b3c1f0a2e7d5c9e8f1a2b",
"from": "Acme <hello@example.com>",
"to": ["customer@example.org"],
"subject": "Your order is ready",
"status": "processed",
"error": null,
"created_at": "2026-09-30T10:00:00.000Z",
"recipients": [
{
"email": "customer@example.org",
"status": "delivered",
"delivered_at": "2026-09-30T10:00:01.000Z",
"opened_at": "2026-09-30T10:12:40.000Z",
"clicked_at": null,
"last_response": "250 2.0.0 OK"
}
]
}
Field Type Description
status string The state of the email itself, see below.
error string or null Why the email is failed.
created_at string When the API accepted the email, ISO 8601 in UTC.
recipients array One entry per address in to, cc and bcc. Empty until the email is processed.
recipients[].status string The state of this delivery, see below.
recipients[].delivered_at string or null When the recipient’s server accepted the email.
recipients[].opened_at string or null The first open made by the recipient, or their first click. Apple Mail’s prefetch and robots never set it. See Track opens and clicks.
recipients[].clicked_at string or null The first click made by the recipient, security scanners left out.
recipients[].last_response string or null The last answer of the recipient’s server.
Value Meaning
queued Accepted, waiting to be signed.
processed Signed. Each recipient now has its own status.
failed Could not be signed, for example because the domain is no longer verified. Nothing was sent.
test Sent with a test key. Nothing was sent.
Value Meaning
queued Waiting for its turn.
sending An attempt is in progress.
delivered The recipient’s server accepted the email.
deferred Refused temporarily. MailPush will try again, for 72 hours at most.
bounced Refused permanently. last_response holds the reason.
failed Still refused after 72 hours of retries.
suppressed Not sent: the address is on your account’s suppression list.
Terminal window
curl https://api.mailpush.app/v1/emails/em_4b9b3c1f0a2e7d5c9e8f1a2b \
-H "Authorization: Bearer $MAILPUSH_API_KEY"
const email = await mailpush.emails.get("em_4b9b3c1f0a2e7d5c9e8f1a2b");
Status Code When
401 missing_api_key, invalid_api_key No key, or a wrong or revoked one.
404 email_not_found No such email, or it belongs to another account.
429 rate_limited More than 10 requests in a second with this key.