# `bird email broadcasts update`

## Usage

```bash
bird email broadcasts update <broadcast-id> [flags]
```

## Description

Update a draft or scheduled broadcast

Only the fields you pass change. A broadcast whose delivery has already started can no longer be edited.
To clear a nullable field (template, reply-to, ip-pool-id), pass an explicit null via --body-file, e.g. --body-file '{"ip_pool_id": null}'.

Build the request from flags, a JSON EmailBroadcastUpdateRequest body via --body-file ("-" reads
stdin), or both — a flag overrides the matching body field. Run --example to
print a ready-to-edit body, or --dry-run to print the resolved request without
sending it.

## Examples

```bash
# print the body shape (no credentials needed)
bird email broadcasts update --example

# the body it prints:
```

```json
{
  "category": "marketing",
  "template": {
    "id": "emt_01krdgeqcxet5s7t44vh8rt9mg"
  }
}
```

## Options

#### Content

| Name                   | Description                                                                            |
| ---------------------- | -------------------------------------------------------------------------------------- |
| `--from`               | Sender address. Accepts a bare address or RFC 5322 "Name &lt;addr>" form               |
| `--audience-id`        | Audience to send to                                                                    |
| `--template`           | Template id (emt_…) whose latest published version supplies the content                |
| `--reply-to <v1,v2,…>` | Reply-To address; repeatable. Accepts bare addresses or RFC 5322 "Name &lt;addr>" form |

#### Labels & metadata

| Name                   | Description                                                                   |
| ---------------------- | ----------------------------------------------------------------------------- |
| `--header <key=value>` | Custom header as Key=Value; repeatable. Replaces the draft's existing headers |
| `--tag <key=value>`    | Tag as name=value; repeatable. Replaces the draft's existing tags             |
| `--metadata`           | Arbitrary JSON metadata object. Replaces the draft's existing metadata        |
| `--category`           | Suppression policy: marketing or transactional                                |
| `--ip-pool-id`         | IP pool id (ipp_…) to send from                                               |

#### Tracking

| Name             | Description                       |
| ---------------- | --------------------------------- |
| `--track-opens`  | Track open events (default true)  |
| `--track-clicks` | Track click events (default true) |

#### Request

| Name                | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| `--body-file`       | Read the JSON request body from this file; "-" reads stdin   |
| `--example`         | Print a complete example request body, then exit             |
| `--dry-run`         | Print the resolved request without sending it, then exit     |
| `--idempotency-key` | Deduplication key; a retry with the same key won't act twice |

#### Options

| Name                | Description                                      |
| ------------------- | ------------------------------------------------ |
| `--response-schema` | Print the fields this command returns, then exit |

## Related

| Name                                                                                            | Description                       |
| ----------------------------------------------------------------------------------------------- | --------------------------------- |
| [`bird email broadcasts cancel`](/docs/cli/reference/email-broadcasts-cancel)                   | Cancel a broadcast                |
| [`bird email broadcasts counts`](/docs/cli/reference/email-broadcasts-counts)                   | Get a broadcast's audience counts |
| [`bird email broadcasts create`](/docs/cli/reference/email-broadcasts-create)                   | Create a broadcast                |
| [`bird email broadcasts delete`](/docs/cli/reference/email-broadcasts-delete)                   | Delete a broadcast                |
| [`bird email broadcasts get`](/docs/cli/reference/email-broadcasts-get)                         | Get a broadcast                   |
| [`bird email broadcasts list`](/docs/cli/reference/email-broadcasts-list)                       | List broadcasts                   |
| [`bird email broadcasts list-events`](/docs/cli/reference/email-broadcasts-list-events)         | List events for a broadcast       |
| [`bird email broadcasts list-recipients`](/docs/cli/reference/email-broadcasts-list-recipients) | List recipients of a broadcast    |
| [`bird email broadcasts send`](/docs/cli/reference/email-broadcasts-send)                       | Send a broadcast                  |