Create a broadcast▾
POST

Create a broadcast

Send an approved template to a segment, immediately or on a schedule.

Sendport throttles dispatch to stay inside your Meta messaging tier, so a large broadcast drains over minutes rather than failing at the limit. Create it as a draft first if you want to review the audience size and cost before committing.

Marketing sends move your quality rating

A poorly targeted broadcast produces blocks and reports, which drops the number's quality rating and can cut your messaging tier within hours. Segment tightly and keep an opt-out in the footer.
POST/v1/broadcasts

Body parameters

namestringrequired

Internal label shown in the dashboard.

templateobjectrequired

{ "name": …, "language": …, "components": [...] } — same shape as a template send.

audienceobjectrequired

Who to send to.

tagsarray

Contacts carrying all of these tags.

wa_idsarray

Explicit recipient list. Mutually exclusive with tags.

opted_in_onlybooleandefault true

Skip contacts without a marketing opt-in.

scheduled_atstring

RFC 3339. Omit to start immediately.

statusenumdefault scheduled

draft computes the audience and cost without sending.

draftscheduled

curl -X POST https://api.sendport.tech/v1/broadcasts \
  -H "Authorization: Bearer $SENDPORT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"September promo","template":{"name":"seasonal_promo","language":"en"},"audience":{"tags":["vip"],"opted_in_only":true},"scheduled_at":"2026-09-08T08:00:00Z"}'

Responses

201Created
{
  "object": "broadcast",
  "id": "bc_01JZQ5D4P6R8T0V2X4Z6B8DFHK",
  "name": "September promo",
  "template": { "name": "seasonal_promo", "language": "en" },
  "status": "scheduled",
  "audience": { "size": 12480, "filter": { "tags": ["vip"] } },
  "counts": { "queued": 3120, "sent": 9002, "delivered": 8741, "read": 5310, "failed": 358 },
  "estimated_cost": { "amount": "158.24", "currency": "USD" },
  "created_at": "2026-09-06T09:14:22.114Z"
}
401Unauthorized
{
  "error": {
    "type": "authentication_error",
    "code": "missing_api_key",
    "message": "No API key provided.",
    "doc_url": "https://sendport.tech/docs/errors#missing_api_key",
    "request_id": "req_9f3c2a7b41de08c5b2e6"
  }
}
Try itsandbox