# 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 <noreply@example.com>",
      "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](https://usesendy.com/emails).
