Create a broadcast
create_broadcastCreate and schedule email broadcasts to reach subscribers, with options for filtering, publishing, and template selection.
Instructions
Create a broadcast. May affect delivery, audience membership, published data or irreversible state. Requires confirm=true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| public | No | `true` to publish this broadcast to the web. The broadcast will appear in a newsletter feed on your Creator Profile and Landing Pages. | |
| account | No | Named private account from KIT_ACCOUNTS. Defaults to KIT_DEFAULT_ACCOUNT or the first configured account. | |
| confirm | No | Must be true for audience/delivery changes, publishing, destructive operations and signing-secret changes. Use only for an action requested by the user. | |
| content | No | The HTML content of the email. On a `Classic` template this is the body, and the template adds the design around it when the broadcast is sent. On a `Starting point` template the design lives in the body, so this is the complete email: keep the wrappers, images, inline styles and Liquid tags, including `{{ unsubscribe_url }}` and `{{ address }}`. Without an unsubscribe link the broadcast can't be sent. A read returns the string that was written, so `GET`, `PUT`, `GET` round-trips, apart from Kit's own "Built with Kit" badge, which a `Starting point` write takes out of the body and re-applies when the email renders. A broadcast built in Kit's editor reads back as Kit's rendered HTML instead, and writing that back replaces its individually-editable blocks with one HTML block. Sending `content` in the same request as a `Starting point` `email_template_id` also needs `allow_starting_point: true`. Omit `content` and name a `Starting point` template in `email_template_id` to create the broadcast with that template's own design. | |
| payload | No | Complete JSON body instead of individual body flags. Supports nullable fields and nested bulk structures. Cannot be combined with body flags or payload_file. | |
| send_at | No | The scheduled send time for this broadcast in ISO8601 format. If no timezone is provided, UTC is assumed. | |
| subject | No | ||
| description | No | ||
| payload_file | No | Local JSON request body file, at most 5 MB. Contents are validated before the API call and are never logged. | |
| preview_text | No | ||
| published_at | No | The published timestamp to display in ISO8601 format. If no timezone is provided, UTC is assumed. | |
| email_address | No | The sending email address to use. Uses the account's sending email address if not provided. | |
| thumbnail_alt | No | ||
| thumbnail_url | No | ||
| email_template_id | No | Id of the email template to use. Uses the account's default template if not provided. 'Starting point' template is not supported. | |
| subscriber_filter | No | Filters your subscribers. At this time, we only support using only one filter group type via the API (e.g. `all`, `any`, or `none` but no combinations). If nothing is provided, will default to all of your subscribers. | |
| allow_starting_point | No | Explicitly allow replacing a Starting point template body, as described in Kit’s current content-field documentation. Review the complete rendered HTML first. |