Update broadcast fields (PUT alias of PATCH)
Registered alias of the PATCH handler for consistency with the Agents API; identical semantics.
Authorization
bearerAuth Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the
platform keyring. Carries workspace_id and scopes claims;
revoked via the platform deny-list.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/broadcasts/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "name": "July appointment reminders", "prompt_template": "Remind {{name}} about their {{date}} appointment.", "start_phrase": "Hi, this is a reminder from your clinic.", "caller_number_id": "7c9e6b41-2d38-4a15-8f70-1b4d9e3c6a25", "schedule_days": [ 1, 2, 3, 4, 5 ], "daily_start_minute": 540, "daily_end_minute": 1020, "timezone": "Africa/Nairobi", "max_attempts": 3, "backoff_minutes": 60, "retry_on": [ "no_answer", "busy" ] }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978", "caller_number_id": "6724ddc7-3cb4-46c7-90e2-4e18c26317c6", "name": "string", "prompt_template": "string", "start_phrase": "string", "required_variables": [ "string" ], "schedule_days": [ 0 ], "daily_start_minute": 0, "daily_end_minute": 0, "timezone": "string", "max_attempts": 0, "backoff_minutes": 0, "retry_on": [ "no_answer" ], "state": "draft", "reason": "string", "completed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}Get broadcast detail with funnel, costs, and blocking reason GET
The aggregate read: funnel counts, cost rollups, `total_contacts`, plus `next_dial_at`/`blocking_reason` and seat usage while running. No embedded call details — query `GET /v1/calls?broadcast_id=…`.
Update broadcast fields (partial) PATCH
Field-level patch. A `prompt_template` change re-derives `required_variables`. Completed broadcasts are immutable (409 `broadcasts.completed`).