Broadcasts
List broadcasts with per-row funnel + spend
Authorization
bearerAuth AuthorizationBearer <token>
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
Query Parameters
cursor?string
limit?integer
Range
1 <= valuestate?string
Convenience equality filter applied to the current page.
Value in
- "draft"
- "running"
- "paused"
- "completed"
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/broadcasts"{ "data": [ { "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", "agent_name": "string", "funnel": { "total": 0, "queued": 0, "attempted": 0, "reached": 0 }, "spend_minor": 0, "currency": "string" } ], "next_cursor": "string", "total_count": 0}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string" }}Get concurrency-seat usage for the workspace GET
Live read of `seats_in_use` / `seats_total` — a claim/release cycle is visible on the next call.
Create a broadcast (draft) POST
Creates a draft campaign bound to an agent. `required_variables` is derived server-side from the template's `{{placeholders}}`. `name` is optional. The broadcast does NOT dial until `POST .../start`.