# `bird email broadcasts create`

## Usage

```bash
bird email broadcasts create [flags]
```

## Description

Create a broadcast

Every field is optional; a broadcast can be created as an empty draft and filled in later with "bird email broadcasts update". Pass --send to dispatch on creation instead of leaving a draft.

Build the request from flags, a JSON EmailBroadcastCreateRequest 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 create --example

# the body it prints:
```

```json
{
  "audience_id": "adn_01krdgeqcxet5s7t44vh8rt9mg",
  "category": "marketing",
  "from": "hello@bird.com",
  "metadata": {
    "campaign_id": "12345"
  },
  "tags": [
    {
      "name": "campaign",
      "value": "spring_launch"
    }
  ],
  "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                   |
| `--tag <key=value>`    | Tag as name=value; repeatable                            |
| `--metadata`           | Arbitrary JSON metadata object                           |
| `--category`           | Suppression policy: marketing (default) 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) |

#### Delivery

| Name             | Description                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------ |
| `--send`         | Dispatch on creation, immediately or at --scheduled-at, instead of leaving a draft         |
| `--scheduled-at` | Schedule the send for a future time (RFC 3339, e.g. 2026-07-10T09:00:00Z); requires --send |

#### 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 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                      |
| [`bird email broadcasts update`](/docs/cli/reference/email-broadcasts-update)                   | Update a draft or scheduled broadcast |