Skip to main content

Overview

A widget is an embeddable voice call entry point. You create a widget, configure its appearance and linked assistant, then embed it in your product. When a user clicks the call button, your frontend calls POST /v1/widgets/create-call to get a WebSocket URL and starts the audio session. Required scopes: widgets:read (read), widgets:write (create/update/delete/call)

POST /v1/widgets

Creates a new widget for your organization.
201 Created
Common errors: 403 missing widgets:write scope

GET /v1/widgets

Lists all widgets for your organization.

GET /v1/widgets/{id}

Returns a single widget by ID.

PATCH /v1/widgets/{id}

Updates a widget’s appearance, assistant, and allowed origins.
Common errors: 400 validation error · 403 missing widgets:write scope · 404 widget not found

POST /v1/widgets/create-call

Creates a call session for a widget. Call this from your server when a user clicks the call button in your UI.
201 Created
Pass gateway.url to your browser client to open the WebSocket connection. The call_id can be used later to retrieve the transcript via GET /v1/calls/{id}/transcripts. Common errors: 400 invalid payload · 403 missing widgets:write scope · 404 widget not found

DELETE /v1/widgets/{id}

Permanently deletes a widget.
Common errors: 403 missing widgets:write scope · 404 widget not found