---
title: "Create Broadcast"
method: POST
path: "/broadcasts"
tags: ["Broadcasts"]
---

# Create Broadcast

`POST /broadcasts`

Create a broadcast. Provisions a private notification template for the broadcast and returns the new broadcast in the draft state. Exactly one channel is required.

## Request body

- CreateBroadcastRequest — Request body for creating a broadcast.
  - `name` string, required — Human-readable name.
  - `channel` 'email' | 'sms' | 'push' | 'inbox' | 'slack' | 'msteams', required — The single delivery channel for this broadcast.

## Response `201`

Created

- Broadcast — A broadcast — a single-channel message delivered to a known set of recipients (a list or audience).
  - `id` string, required — The broadcast ID (bst_ prefix).
  - `name` string, required — Human-readable name.
  - `channel` 'email' | 'sms' | 'push' | 'inbox' | 'slack' | 'msteams', required — The broadcast's delivery channel.
  - `status` 'draft' | 'scheduled' | 'sending' | 'sent', required — Lifecycle status of the broadcast.
  - `schedule` BroadcastSchedule — The delivery schedule and recipient targeting for a broadcast.
    - `recipient_type` 'list' | 'audience', required — Whether the broadcast targets a list or an audience.
    - `recipient_id` string, required — ID of the target list or audience.
    - `scheduled_to` string, nullable — Wall-clock timestamp of the scheduled send, no timezone offset (e.g. "2026-07-21T20:00:00").
    - `timezone` string, nullable — IANA timezone for the scheduled send (e.g. America/New_York).
  - `created_at` string, required — ISO 8601 timestamp when the broadcast was created.
  - `updated_at` string, required — ISO 8601 timestamp of the last update.
  - `created_by` string, required — Actor that created the broadcast.
  - `updated_by` string, required — Actor that last updated the broadcast.
  - `archived_at` string, nullable — ISO 8601 timestamp when the broadcast was archived, if archived.
  - `archived_by` string, nullable — Actor that archived the broadcast, if archived.

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/trycourier/apis/courier.md) · [All operations](https://skmtc.net/trycourier/apis/courier/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trycourier/courier/versions/04f69fbf96a5/schema)
