# Message status

In this section, you can find more details about the message statuses that apply to the the email channel in the Channels API

{% code lineNumbers="true" %}

```json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "sender": {
    "connector": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "identifierValue": "string",
      "annotations": {
        "name": "string"
      }
    }
  },
  "body": {
    "type": "text"
  },
  "reference": "string",
  "parts": [
    {
      "platformReference": "string"
    }
  ],
  "status": "accepted",
  "reason": "string",
  "direction": "incoming",
  "template": {
    "projectId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "version": "string",
    "locale": "string",
    "variables": {
      "default": "string",
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
    }
  },
  "lastStatusAt": "2023-06-23T15:51:19.660Z",
  "createdAt": "2023-06-23T15:51:19.660Z",
  "updatedAt": "2023-06-23T15:51:19.660Z",
  "details": "string"
}
```

{% endcode %}

Email supports the following [message statuses](/api/channels-api/message-status-and-interactions.md#message-lifecycle-events)

| Status           | Description                                                                                                                                                                                                       |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| accepted         | An outgoing message has been accepted by the Channels API                                                                                                                                                         |
| sent             | Channels API has attempted to send an outgoing message to a platform e.g Email                                                                                                                                    |
| sending\_failed  | An outgoing message has failed to be sent to a platform                                                                                                                                                           |
| delivery\_failed | An outgoing message has been sent successfully to a platform but the message has failed to be delivered to a recipient                                                                                            |
| delivered        | An outgoing message has been successfully delivered to a recipient or an incoming message has been delivered to the channels API. Use the `direction` field to determine if a message is `outgoing` or `incoming` |

Additional information for sending or delivery failure can be found in the `details` and where applicable a `reason` will be set to provide more troubleshooting information:

<table><thead><tr><th>Status</th><th width="202">details</th><th>Description</th></tr></thead><tbody><tr><td>sending_failed</td><td>generationRejection</td><td>Message generation failed due to policy</td></tr><tr><td>sending_failed</td><td>generationFailure</td><td>Message generation failed for an intended recipient </td></tr><tr><td>sending_failed</td><td>policyRejection</td><td>Message rejected due to policy</td></tr><tr><td>delivery_failed</td><td>bounceHard</td><td>The recipient is invalid or could not be determined</td></tr><tr><td>delivery_failed</td><td>bounceSoft</td><td>The message has been temporarily delayed or failed for unspecified reasons</td></tr><tr><td>delivery_failed</td><td>bounceBlock</td><td>The message has been blocked by the receiver</td></tr><tr><td>delivery_failed</td><td>bounceAdmin</td><td>The message was failed by an configured policy</td></tr><tr><td>delivery_failed</td><td>bounceUndetermined</td><td>The response text could not be determined</td></tr><tr><td>delivery_failed</td><td>delay</td><td>Remote MTA has temporarily rejected the message</td></tr><tr><td>delivery_failed</td><td>out_of_band</td><td>Remote MTA initially reported acceptance of the message, but it has since reported that the message was not delivered</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bird.com/api/channels-api/supported-channels/programmable-email/message-status.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
