Get email status

Inspect a queued, processing, accepted, or failed request.

GET/api/v1/emails/{id}

Use an active API key from the account that submitted the email. A job from another account returns 404.

Request

GET /api/v1/emails/{id}
curl -X GET 'API_BASE_URL/api/v1/emails/JOB_ID' \
  -H 'Authorization: Bearer API_KEY' \
  -H 'Accept: application/vnd.api+json'

Replace JOB_ID with the submission response’s id. Use the same Sendy origin and an active account API key. No request body is needed.

Response 200

Accepted email · application/vnd.api+json
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": {
    "type": "emails",
    "id": "123",
    "attributes": {
      "from": "My App <[email protected]>",
      "status": "accepted",
      "attempts": 1,
      "message_id": "example-message-id",
      "last_error": null,
      "delivery_status": null,
      "delivery_at": null,
      "delivery_detail": null
    }
  }
}

id / from
The job ID and submitted sender.
status / attempts
Current job state and number of sending attempts.
message_id
The provider’s message ID after acceptance; null before acceptance.
delivery_status
The latest delivery outcome: delivered, delayed, bounced, complaint, or rejected. null means no delivery event has been recorded. The sending status remains accepted.
delivery_at / delivery_detail
The delivery event time in Unix seconds and a readable explanation, or null. Delivered means the receiving mail server accepted the message; it does not confirm inbox placement. Check again later for delays, bounces, or complaints.
last_error
The latest sending error, or null. A queued retry can retain its previous error.

Request specific fields

Add fields[emails] to request only the attributes you need. Resource type and id remain in the response. For example, poll the sending and delivery state with this query:

Poll email state
curl --get 'https://usesendy.com/api/v1/emails/JOB_ID' \
  -H 'Authorization: Bearer API_KEY' \
  -H 'Accept: application/vnd.api+json' \
  --data-urlencode 'fields[emails]=status,delivery_status,delivery_at'

Replace JOB_ID and API_KEY with your email ID and account key. An empty fieldset returns only the resource identity. Omitting it returns all public attributes. Field selection also works on submission responses and idempotent replays.

Public attributes are recipient, subject, created_at, from, status, delivery_status, delivery_at, delivery_detail, attempts, message_id, and last_error. Unknown attributes or unsupported resource types return 400.

Status values

queued
Waiting for its first attempt or an automatic retry.
processing
Sendy is attempting to send the message.
accepted
The sending provider accepted the message. This does not confirm inbox delivery.
failed
Sending stopped after a permanent failure or exhausted attempts.

Jobs remain available after completion. You can also inspect them in Emails.