# Set dashboard email sender

Configure a custom notification email sender for a dashboard.

Source: https://statusdashboard.com/docs/api/status-dashboards/dashboards/branding/email-sender/update

`PUT /app/dashboards/{id}/branding/email-sender`

Sets the from address for notification emails sent on behalf of this dashboard. The platform verifies the sending **domain** and returns DKIM DNS records to publish.

Requires the **Custom Branding** feature entitlement and **admin** role.

***

## Path parameters
| Parameter | Description                |
| --------- | -------------------------- |
| `id`      | The UUID of the dashboard. |

***

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

### Request body
| Field     | Type   | Description                                                                             |
| --------- | ------ | --------------------------------------------------------------------------------------- |
| `address` | string | Sender email address (e.g. `support@acme.com`). Lowercased on save. Max 254 characters. |

The domain portion must be a domain you control. Addresses on the platform sending domain (`statusdashboard.com`) are rejected — use the default platform sender instead.

***

## Sample request
```bash
curl -X PUT https://api.statusdashboard.com/app/dashboards/a1b2c3d4-e5f6-7890-abcd-ef1234567890/branding/email-sender \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "support@acme.com"
  }'
```

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

```json
{
  "address": "support@acme.com",
  "domain": "acme.com",
  "status": "pending_dns",
  "dnsRecords": [
    {
      "type": "CNAME",
      "name": "abc123._domainkey.acme.com",
      "value": "abc123.dkim.amazonses.com"
    }
  ]
}
```

If your organization has already verified `acme.com` on another dashboard, the response may return `status: "verified"` immediately with no DNS step required.

***

## Verification lifecycle
| Status        | When                                                                                                                           |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `pending_dns` | Identity created; publish the returned DKIM CNAME records. Times out after 72 hours if never activated.                        |
| `verifying`   | Customer confirmed DNS; domain verification in progress (checked every 15 minutes, up to 72 hours from activation).            |
| `verified`    | Custom sender is active for notification emails on this dashboard.                                                             |
| `unverified`  | Verification was lost. Restore DNS and call [Activate](/docs/api/status-dashboards/dashboards/branding/email-sender/activate). |
| `removing`    | Sender is being removed; domain cleanup is in progress.                                                                        |
| `failed`      | Verification timed out after 72 hours or was rejected. Remove the sender and retry.                                            |

After publishing DNS records, call [Activate](/docs/api/status-dashboards/dashboards/branding/email-sender/activate) to start verification. The **72-hour validation clock** starts at activation, not when the sender is first saved.

***

## Error responses
| Status | When                                                                                                                                                |
| ------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`  | Invalid email address, address on the platform domain, or sender setup already in progress / must be removed before changing.                       |
| `403`  | Insufficient permissions, or the Custom Branding feature is not enabled.                                                                            |
| `404`  | Dashboard not found or does not belong to the caller's organization.                                                                                |
| `409`  | The sending domain is already registered by another organization, or the domain is being removed and must finish cleanup before it can be re-added. |
