Skip to main content

Get an email

GET/email/v1/emails/{id}

Returns an email by its id, with its status now and everything that happened to it. Any of your team's emails, sent with the API or from the app.

Path parameters​

  • #idstring (uuid)Required
    The email id returned by POST /emails.
    Example: 3f0e8a52-6f4b-4d0e-9b8a-2c1d0e9f8a7b

Events​

events lists what happened to the email, oldest first. Each has a type, the time it happened (at), and a detail: why it bounced or failed, when it did, and otherwise null.

An event's type is one of the statuses. OPENED and CLICKED are kept for open and click tracking, which isn't on yet. Ignore a type you don't recognise.

Waiting for delivery

Most emails are DELIVERED within a minute. If you poll, wait 30 to 60 seconds between calls. A webhook tells you as each thing happens.

Example request​

curl "https://sandbox-api.ponitor.com/email/v1/emails/3f0e8a52-6f4b-4d0e-9b8a-2c1d0e9f8a7b" \
-H "apiKey: $PONITOR_API_KEY"

Responses​

OK. The email object, with its status now and its events.

{
"id": "3f0e8a52-6f4b-4d0e-9b8a-2c1d0e9f8a7b",
"externalId": "signup-8812",
"from": "\"Example\" <hello@mail.example.com>",
"to": "ada@example.com",
"subject": "Your code is 482913",
"templateName": "Verification Code",
"status": "DELIVERED",
"cost": 0.002,
"refunded": false,
"failureReason": null,
"createdAt": "2026-11-02T12:00:00.000Z",
"sentAt": "2026-11-02T12:00:02.000Z",
"events": [
{ "type": "QUEUED", "at": "2026-11-02T12:00:00.000Z", "detail": null },
{ "type": "SENT", "at": "2026-11-02T12:00:02.000Z", "detail": null },
{ "type": "DELIVERED", "at": "2026-11-02T12:00:04.000Z", "detail": null }
]
}