bird email broadcasts create [flags]
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.
# print the body shape (no credentials needed)
bird email broadcasts create --example
# the body it prints:
{
"audience_id": "adn_01krdgeqcxet5s7t44vh8rt9mg",
"category": "marketing",
"from": "hello@bird.com",
"metadata": {
"campaign_id": "12345"
},
"tags": [
{
"name": "campaign",
"value": "spring_launch"
}
],
"template": {
"id": "emt_01krdgeqcxet5s7t44vh8rt9mg"
}
}
| Name | Description |
|---|
| --from | Sender address. Accepts a bare address or RFC 5322 "Name <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 <addr>" form |
| 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 |
| Name | Description |
|---|
| --track-opens | Track open events (default true) |
| --track-clicks | Track click events (default true) |
| 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 |
| 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 |
| Name | Description |
|---|
| --response-schema | Print the fields this command returns, then exit |