/api/voice base path and proxied to the Voice Engine.
Every request must include your PeachDesk API key in the
X-API-Key header (an interactive session token in Authorization: Bearer also works — see Authentication). Channels are scoped to your tenant — you only ever see
and modify channels that belong to your workspace.The channel object
string
Unique identifier for the channel.
string
Human-readable channel name shown in the Voice Studio UI.
boolean
Whether this is the default channel. The default channel is used when no
specific channel is selected.
string[]
IDs of the audio output destinations grouped under this channel.
string (ISO 8601)
Timestamp of when the channel was created.
Example channel
List channels
GET /api/voice/channels
Returns every audio channel in your workspace.
Response — an array of channel objects.
Create a channel
POST /api/voice/channels
Creates a new audio channel.
string
required
Display name for the channel. Must be 1–100 characters.
string[]
default:"[]"
IDs of the audio output destinations to group under this channel. Defaults to
an empty list, which you can populate later.
Get a channel
GET /api/voice/channels/{channel_id}
Fetches a single channel by ID.
string
required
ID of the channel to retrieve.
404 Not Found if no channel matches the ID.
Update a channel
PUT /api/voice/channels/{channel_id}
Updates a channel’s name and/or its grouped output devices. Both fields are
optional — send only the fields you want to change.
string
required
ID of the channel to update.
string
New display name. Must be 1–100 characters when provided.
string[]
Replacement list of output destination IDs. When provided, it replaces the
existing list entirely.
404 Not Found if the channel does not exist, or 400 Bad Request on
validation failure.
Delete a channel
DELETE /api/voice/channels/{channel_id}
Permanently removes a channel.
string
required
ID of the channel to delete.
string
Confirmation message:
"Channel deleted successfully".404 Not Found if the channel does not exist.
Channel voices
Each channel can have a set of voice profiles (avatars from the Voices tab) assigned to it. Assigned voices are the ones available when routing audio through that channel.List assigned voices
GET /api/voice/channels/{channel_id}/voices
Returns the IDs of the voice profiles currently assigned to a channel.
string
required
ID of the channel.
string[]
IDs of the voice profiles assigned to this channel.
Set assigned voices
PUT /api/voice/channels/{channel_id}/voices
Replaces the full set of voices assigned to a channel. The voices you send
become the channel’s complete assignment — any profiles not included are
removed.
string
required
ID of the channel.
string[]
required
IDs of the voice profiles to assign. May reference either Clone from audio
or Built-in voices. Send an empty array to clear all assignments.
string
Confirmation message:
"Channel voices updated successfully".Voice profiles run on PeachDesk’s GPU infrastructure — selecting a profile here
just references a model that is already hosted and served for you. There is
nothing to download or install.

