---
title: "Update Widget Config"
method: PATCH
path: "/voice/sharing/{agentId}/widget-config"
tags: ["Voice Agent Sharing"]
---

# Update Widget Config

`PATCH /voice/sharing/{agentId}/widget-config`

## Request

- Base URL: `https://api.speakai.co/v1`
- URL: `https://api.speakai.co/v1/voice/sharing/{agentId}/widget-config`
- Auth: API key in header `x-speakai-key` and API key in header `x-access-token`

### Update Widget Config

Requires the OWNER or ADMIN role. Partial update of the embeddable widget's appearance and copy -- send at least one of the 24 keys listed here. Rejects any key outside this list (`.unknown(false)` in the server's validation) rather than silently ignoring it, unlike most other partial-update endpoints in this API.

## Path parameters

- `agentId` string, required

## Request body

- object
  - `displayMode` 'floating' | 'inline'
  - `position` 'bottom-left' | 'bottom-right'
  - `bubbleIconType` 'avatar' | 'generic'
  - `buttonSize` 'small' | 'medium' | 'large'
  - `buttonColor` string
  - `theme` 'light' | 'dark' | 'auto'
  - `compactMode` boolean
  - `defaultMode` 'voice' | 'avatar'
  - `showAvatar` boolean
  - `fontFamily` string
  - `borderRadius` number
  - `backgroundColor` string
  - `voiceEnabled` boolean
  - `enableUserCamera` boolean
  - `chatOpenByDefault` boolean
  - `launcherTitle` string
  - `launcherSubtitle` string
  - `showLauncher` boolean
  - `beforeCallTitle` string
  - `beforeCallDescription` string
  - `startButtonLabel` string
  - `afterCallTitle` string
  - `afterCallDescription` string
  - `feedbackEnabled` boolean
  - `companyLogoUrl` string

## Response `200`

OK

- object
  - `status` 'success'
  - `data` object
    - `widgetConfig` object
      - `displayMode` 'floating' | 'inline'
      - `position` 'bottom-left' | 'bottom-right'
      - `bubbleIconType` 'avatar' | 'generic'
      - `buttonSize` 'small' | 'medium' | 'large'
      - `buttonColor` string
      - `theme` 'light' | 'dark' | 'auto'
      - `compactMode` boolean
      - `defaultMode` 'voice' | 'avatar'
      - `showAvatar` boolean
      - `fontFamily` string
      - `borderRadius` number
      - `backgroundColor` string
      - `voiceEnabled` boolean
      - `enableUserCamera` boolean
      - `chatOpenByDefault` boolean
      - `launcherTitle` string
      - `launcherSubtitle` string
      - `showLauncher` boolean
      - `beforeCallTitle` string
      - `beforeCallDescription` string
      - `startButtonLabel` string
      - `afterCallTitle` string
      - `afterCallDescription` string
      - `feedbackEnabled` boolean
      - `companyLogoUrl` string

## Other responses

- `400`: No widget configuration fields provided
- `403`: Caller's role is not OWNER or ADMIN
- `404`: Agent not found

---

[API](https://skmtc.dev/speakai/apis/speak-ai-api.md) · [All operations](https://skmtc.dev/speakai/apis/speak-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/speakai/apis/speak-ai-api/revisions/52d777e6d46e?raw)
