Skip to documentation

API · Broadcasts

Send Broadcast

Send a broadcast now or schedule it for later (requires full access). Recipients are selected when sending begins, with suppression and subscription checks repeated before delivery.

POST/broadcasts/{id}/sendFull access

Request parameters

ParameterTypeDescription
id
path · required
stringOpaque resource id.
Idempotency-Key
header · optional
string
1–256 characters
Makes the request safe to retry. See Idempotency.
scheduled_at
body · optional
string | nullSend time in ISO 8601 or natural language up to 30 days ahead, using UTC when unzoned; omit to send immediately. Send time in ISO 8601 or natural language, up to 30 days ahead, using UTC when unzoned; past times send immediately and rescheduling requires a future time.

Request example

Set OPENSEND_BASE_URL=https://api.example.com and OPENSEND_API_KEY=os_replace_me on your server.

bash
curl -X POST "$OPENSEND_BASE_URL/broadcasts/YOUR_id/send" \
  -H "Authorization: Bearer $OPENSEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"scheduled_at":"in 1 hour"}'

Response

200 · application/json. Example IDs stand for IDs returned by your installation.

json
{
  "id": "YOUR_ID"
}

Behavior and errors

Omit scheduled_at to send now, including a previously scheduled broadcast. Recipients are resolved when sending begins. Global and topic opt-outs and team suppressions are excluded; preferences are rechecked before provider submission. Deleted targets refuse sending instead of widening the audience.

Use a full-access credential. Resource IDs belong to your team; an unknown or foreign resource returns 404. See authentication, errors, rate limits, and compatibility for the shared contract.