# Email deliverability

Retrieve email sending health, bounce and complaint statistics, and active findings for your organization.

Source: https://statusdashboard.com/docs/api/notifications/email/deliverability

`GET /app/notifications/email/deliverability`

Returns email **sending health** for the authenticated organization — sending and reputation status, bounce and complaint statistics for a UTC lookback window, a daily series, and active reputation findings. Read-only; does not change sending policy or pause/resume sending.

Requires the `admin` or `subscriber` role and the **Email notifications** feature entitlement.

***

## Request
See [API Basics](/docs/api) for required headers.

### Query parameters
| Parameter | Type    | Required | Description                                                                                                                                     |
| --------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `days`    | integer | No       | Number of UTC calendar days ending today (inclusive). Today is a partial day through request time. Must be `7`, `14`, or `30`. Defaults to `7`. |

***

## Sample request
```bash
curl "https://api.statusdashboard.com/app/notifications/email/deliverability?days=7" \
  -H "Authorization: Bearer bcf847abf5c6:def456"
```

## Sample response
**Status: `200 OK`**

```json
{
  "availability": "ok",
  "window": {
    "days": 7,
    "timezone": "UTC",
    "start": "2026-08-30T00:00:00.000Z",
    "end": "2026-09-05T16:45:00.000Z"
  },
  "sending": {
    "status": "enabled",
    "pausedBy": null
  },
  "reputation": {
    "status": "healthy"
  },
  "stats": {
    "sends": 1200,
    "bounces": 12,
    "complaints": 1,
    "bounceRate": 0.01,
    "complaintRate": 0.0008333333333333334
  },
  "days": [
    { "date": "2026-08-30", "sends": 80, "bounces": 1, "complaints": 0 },
    { "date": "2026-09-05", "sends": 2, "bounces": 0, "complaints": 0 }
  ],
  "findings": []
}
```

When email is entitled but sending setup is not complete yet, or sending health is not yet available, `availability` is `"pending"`, sending and reputation statuses are `null`, stats are zero, `days` is still dense and zero-filled, and `findings` is `[]`.

***

## Response fields
| Field                    | Type           | Description                                                                                                                                                   |
| ------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `availability`           | string         | `"ok"` when sending health data is available; `"pending"` when setup is still in progress or sending health is not yet available                              |
| `window.days`            | integer        | Number of UTC calendar days in the window (`7`, `14`, or `30`)                                                                                                |
| `window.timezone`        | string         | Always `"UTC"`                                                                                                                                                |
| `window.start`           | string         | ISO-8601 UTC midnight of the first day in the window                                                                                                          |
| `window.end`             | string         | ISO-8601 UTC time of the request                                                                                                                              |
| `sending.status`         | string \| null | `"enabled"`, `"paused"`, or `"reinstated"`; `null` when pending                                                                                               |
| `sending.pausedBy`       | string \| null | `"automatic"` or `"manual"` when paused; otherwise `null`                                                                                                     |
| `reputation.status`      | string \| null | `"healthy"`, `"warning"`, or `"critical"`; `null` when pending                                                                                                |
| `stats.sends`            | number         | Total sends in the window (sum of `days[].sends`)                                                                                                             |
| `stats.bounces`          | number         | Total bounces in the window                                                                                                                                   |
| `stats.complaints`       | number         | Total complaints in the window                                                                                                                                |
| `stats.bounceRate`       | number         | `bounces / sends` when sends > 0; otherwise `0`                                                                                                               |
| `stats.complaintRate`    | number         | `complaints / sends` when sends > 0; otherwise `0`                                                                                                            |
| `days`                   | array          | Dense series of exactly `window.days` UTC calendar days, ascending, zero-filled where no activity. The last day is today and is partial through `window.end`. |
| `days[].date`            | string         | UTC calendar day (`YYYY-MM-DD`)                                                                                                                               |
| `days[].sends`           | number         | Non-negative send count                                                                                                                                       |
| `days[].bounces`         | number         | Non-negative bounce count                                                                                                                                     |
| `days[].complaints`      | number         | Non-negative complaint count                                                                                                                                  |
| `findings`               | array          | Active reputation findings for your organization                                                                                                              |
| `findings[].type`        | string         | `"bounce"`, `"complaint"`, `"third_party"`, `"blocklist"`, or `"other"`                                                                                       |
| `findings[].severity`    | string         | `"warning"` or `"critical"`                                                                                                                                   |
| `findings[].status`      | string         | `"open"` or `"resolved"`                                                                                                                                      |
| `findings[].description` | string         | Scrubbed finding summary (max 512 characters)                                                                                                                 |
| `findings[].createdAt`   | string         | ISO-8601 creation time                                                                                                                                        |
| `findings[].updatedAt`   | string         | ISO-8601 last update time                                                                                                                                     |

***

## Error responses
| Status | When                                                          |
| -----: | ------------------------------------------------------------- |
|  `400` | `days` is present and not `7`, `14`, or `30`                  |
|  `403` | Missing role or email feature entitlement                     |
|  `500` | Unexpected server error after sending setup is known to exist |
