Email deliverability
Retrieve email sending health, bounce and complaint statistics, and active findings for your organization.
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 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
curl "https://api.statusdashboard.com/app/notifications/email/deliverability?days=7" \
-H "Authorization: Bearer bcf847abf5c6:def456"Sample response
Status: 200 OK
{
"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 |

