Send (or schedule) a broadcast
Dispatches a draft (or scheduled) broadcast. With no body, or no
scheduled_at, it sends immediately. With a future RFC 3339 scheduled_at
it schedules the broadcast for delivery at that time.
Consent and suppression are enforced at send time: suppressed,
globally-unsubscribed, and (when the broadcast has a topic) topic-opted-out
recipients are filtered before SES hand-off. Poll
GET /v1/broadcasts/{id}/results for per-recipient outcomes.
A topic-less broadcast degrades its unsubscribe link to an account-wide
opt-out; sending one requires acknowledge_no_topic: true, otherwise the
call returns 422 no_topic_acknowledgement_required with the warnings to
confirm. Supports the Idempotency-Key header so a retried send does not
double-fire. Returns 202 with the broadcast id and its accepted status.
Path parameters
id string<uuid> required Resource UUID. An unparseable id reads as a clean 404 not_found.
Request body
Content type: application/json
scheduled_at string<date-time> optional Optional future RFC 3339 UTC instant. Omit (or empty) to send immediately; supply a future time to schedule.
acknowledge_no_topic boolean optional Confirm the no-topic warnings for a topic-less broadcast. Required (here or at create) before a topic-less broadcast can be sent.
Responses
Errors follow the RFC 7807 problem format — see the error reference.
id string<uuid> required status string enum required sending for an immediate send (the pipeline runs asynchronously) or scheduled when a future scheduled_at was supplied.
One of: sending, scheduled
code: invalid_scope), or it is bound to the test environment and this operation is irreversible (code: test_environment_forbidden). Branch on code: the first is fixed by granting the scope, the second only by using a live credential. See the "Live and test credentials" section of the API description. application/problem+json code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json