Get one queue and its roster
API-key scope: queues.read.
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
The queue's bare name, as created.
^[A-Za-z0-9._-]{1,64}$Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/queues/string"{ "queue": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "sharing_mode": "longest_free", "max_wait_seconds": 0, "max_depth": 0, "discard_abandoned_after_seconds": 0, "announce_position": true, "announce_frequency_seconds": 0, "moh_url": "string", "agents": [ { "extension": "string", "level": 0, "position": 0 } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ], "resolution": "string", "reason": "invalid_characters", "suggested_e164": "+254727524723" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ], "resolution": "string", "reason": "invalid_characters", "suggested_e164": "+254727524723" }}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ], "resolution": "string", "reason": "invalid_characters", "suggested_e164": "+254727524723" }}Create a call-centre queue POST
Creates a queue and pushes the workspace's configuration to the phone system as part of the request. **API-key scope:** `queues.manage`. Viewer members are refused (`accounts.write_denied`). Create-only: a name this workspace already uses is a `409`, never a silent overwrite. The queue is created EMPTY — the roster is set separately, with `PUT /v1/queues/{name}/agents`, so a settings save can never empty a team by omission. Every setting is optional and every omitted setting takes its default; see `CallQueueSettings`.
Replace a queue's settings PUT
**API-key scope:** `queues.manage`. Viewer members are refused (`accounts.write_denied`). ## This is a FULL REPLACE, not a patch An omitted setting RETURNS TO ITS DEFAULT — it does not keep the value the previous save left. The body you send is the queue you get. To change one setting, send every setting you want to keep along with it; `GET /v1/queues/{name}` first if you do not have them to hand. Concretely: a queue saved with `max_wait_seconds: 600` and then updated with a body of `{"sharing_mode": "take_turns"}` comes back with `max_wait_seconds: 0` (hold indefinitely) and `announce_position: false`. The ROSTER is the exception, because it is not part of this body at all: agents are untouched by an update and are replaced only through `PUT /v1/queues/{name}/agents`. Queues cannot be renamed. `name` may be omitted from the body; if it is present it must equal the name in the path, and a mismatch is a `400` rather than a silently ignored rename. Update-only: an unknown name is a `404`, not an implicit create.