API Reference
Web widget

Get the web widget settings

GET
/v1/desk/widget/settings

Returns the chat widget for this workspace: whether it is on, the websites it may load on, its title, greeting, colour and corner, the snippet to paste into your site, and the state of its Call button. The first call creates the widget with a fresh public_key, switched off.

public_key names the workspace and grants nothing on its own; the widget only loads on the allowed_origins you list. identity_secret is a real secret (it signs the token your server issues to vouch for a signed-in visitor): keep it on your server.

Authenticate with a personal SautiDesk API key that carries the desk.admin scope, held by a workspace owner or admin. Workspace API keys are refused. The workspace must have SautiDesk turned on (403 desk.not_desk_opted_in otherwise).

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

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/desk/widget/settings"
{  "public_key": "wk_3f9c2a7b1e",  "enabled": true,  "allowed_origins": [    "https://www.example.co.ke"  ],  "title": "Talk to us",  "greeting": "Hi, how can we help today?",  "away_message": "We are away right now and will reply when we are back.",  "reply_time": "We usually reply in a few minutes",  "accent": "#0F766E",  "side": "right",  "theme": "system",  "identity_required": false,  "snippet": "<script async src=\"https://api.sautidesk.com/widget.js\" data-desk-key=\"wk_3f9c2a7b1e\"></script>",  "faces": [    "AW",    "BK"  ],  "names": [    "Amina",    "Brian"  ],  "lead": "Amina",  "voice": {    "enabled": true,    "queue_id": "c70c2d37-4d65-4ba4-9843-5e8aaf2dae40",    "queue_name": "Support",    "queue_ready": true,    "destination": "",    "note": "Talk to sales",    "available": true,    "status": "ready",    "needs_number": false  }}
{  "error": "string",  "code": "string"}
{  "error": "string",  "code": "string"}