# Update broadcast

> Update a draft broadcast.

Source: https://sndr.sh/docs/api/broadcasts/update-broadcast

`PATCH https://api.sndr.sh/v1/broadcasts/{id}`

Update a draft broadcast. Send only the fields to change; it returns the updated broadcast.

Scope: `send`

**Path parameters**

- `id` (string, required): Broadcast ID (bca_...).

**Body** (JSON)

- `name` (string): New internal name, 1–120 characters.
- `group_id` (string): New target group (grp_...).
- `from_email` (string): New sender, as an address or "Name <address>".
- `subject` (string): New subject line, 1–500 characters.
- `template_id` (string): New template ID (tpl_...).
- `html` (string): New HTML body.
- `text` (string): New plain-text body.

**Request**

```bash
curl -X PATCH 'https://api.sndr.sh/v1/broadcasts/bca_9b3e6d12-a40' \
  -H "Authorization: Bearer $SNDR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"subject": "June product update: highlights"}'
```

**Response** (200)

```json
{
  "id":               "bca_9b3e6d12-a40",
  "organization_id":  "org_8d41c7a2-3f6",
  "name":             "June newsletter",
  "group_id":         "grp_4d8a0c5e-1f7",
  "from_email":       "hello@acme.com",
  "subject":          "June product update: highlights",
  "html":             "<h1>June update</h1><p>Here is what is new.</p>",
  "status":           "draft",
  "total_recipients": 0,
  "sent_count":       0,
  "failed_count":     0,
  "created_at":       "2026-05-28T14:00:00Z"
}
```

**Errors**

- `unauthenticated` (401): Missing or invalid API key.
- `invalid_request` (400): Body is not valid JSON, has an unknown field, or a field has the wrong type.
- `not_editable` (400): The broadcast is no longer a draft.
- `insufficient_scope` (403): The API key is missing the send scope.
- `not_found` (404): Resource does not exist or belongs to a different account.
- `validation_failed` (422): name or subject is empty or too long, or from_email is invalid.
