API reference

Voice

Browse the voices available to your workspace and map phone numbers to bots so callers reach the right agent. Read endpoints need voice:read; create/update/delete need voice:write.

Endpoints

Method & pathAbilityNotes
GET /api/v1/voice/catalogvoice:readAvailable voices
GET /api/v1/voice/numbersvoice:readList (metadata filters; no pagination)
POST /api/v1/voice/numbersvoice:writeCreate → { id }
GET /api/v1/voice/numbers/{id}voice:read
PUT /api/v1/voice/numbers/{id}voice:writeUpdate → message only
DELETE /api/v1/voice/numbers/{id}voice:write
PATCH /api/v1/voice/numbers/{id}/metadatavoice:writeRaw metadata object

Voice catalog

GET /api/v1/voice/catalog returns the voices you can assign (filtered to providers that have a key configured): { "voices": [{ "id": "…", "name": "…", "language": "…", "gender": "…" }] }.

Voice numbers

A voice number maps an inbound phone number to a bot. Object fields: id, phone_number, bot_id, bot_name, tenant_id, greeting, tts_voice, optional metadata, created_at, updated_at.

Create with POST /api/v1/voice/numbers:

{
  "phone_number": "+15551234567",
  "bot_id": "b1f2c3d4-…",
  "greeting": "Thanks for calling!",
  "tts_voice": "voice_id"
}

phone_number and bot_id are required; greeting, tts_voice, and metadata are optional. On PUT, metadata follows a keep-on-omit rule (omit to keep, send {} to clear).