Skip to content

Voice Agents ​

Two things live here: the agent configurations that decide how an agent behaves, and the catalog of speech providers and voices it can speak with.

ActionRoute
List configurationsGET /agents/configs
Get oneGET /agents/configs/{documentId}
CreatePOST /agents/configs
ReplacePUT /agents/configs/{documentId}
DeleteDELETE /agents/configs/{documentId}
List providersGET /voice/providers
List a provider's voicesGET /voice/providers/{provider}/voices

Configurations ​

A configuration is a document — the studio adds fields to it as agents gain capabilities, so treat unknown keys as pass-through rather than dropping them.

bash
curl "$ME_BASE/agents/configs" \
  -H "API-Key: $ME_API_KEY" \
  -H "X-TenantID: $ME_TENANT"

Provider and voice catalog ​

Which providers are available is a per-deployment question, not a constant: availability follows the vendor keys configured for your environment. Read the catalog at runtime rather than hard-coding a provider list.

bash
curl "$ME_BASE/voice/providers/elevenlabs/voices" \
  -H "API-Key: $ME_API_KEY" \
  -H "X-TenantID: $ME_TENANT"
json
{
  "data": [
    {
      "id": "voice_abc",
      "name": "Mali",
      "gender": "female",
      "language": "th-TH",
      "preview": true
    }
  ]
}
FieldNotes
idPass this as the agent's voice id.
previewWhether this voice can be rendered to a sample here.

Honour preview

preview is resolved per request because it turns on and off with a vendor key. When it is false, disable the play button — never substitute a different voice for the sample, or the picker plays something the agent will not speak with.

Go SDK ​

go
configs, err := c.Agents.ListConfigs(ctx)
voices, err := c.Agents.ListVoices(ctx, "elevenlabs")