Run Audition
Synthesise `text` (at most 200 characters) with 1-5 voices. Each sample comes back in full quality and in phone quality (8 kHz mu-law, what a caller hears) with the provider's time to first byte. Per-sample failures (no key, a cap reached, the provider refused) are reported in the sample, never retried. Caps: 30 new samples per workspace and UTC day (cached replays are free) and a daily character budget per provider on the platform's keys. Owners and admins.
API key access
admin scope with an API key (ro_pat_...). A signed-in session uses the caller's role./api/v1/voice/auditionAccess token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
Header Parameters
Id of the workspace to act on (must be a member).
The sentence to say (at most 200 characters).
1 <= length <= 200Language of the text: en, te, hi, te-IN, ...
"en"^[A-Za-z]{2,3}([-_][A-Za-z]{2})?$1 to 5 voices.
1 <= items <= 5Response Body
curl -X POST "http://localhost:8000/api/v1/voice/audition" \ -H "X-Workspace-Id: string" \ -H "Content-Type: application/json" \ -d '{ "text": "string", "voices": [ { "provider": "cartesia" } ] }'{
"text": "string",
"language": "string",
"samples": [
{
"provider": "cartesia",
"voice": "string",
"model": "string",
"language": "string",
"ok": true,
"cached": true,
"key_source": "workspace",
"error_code": "string",
"error": "string",
"ttfb_ms": 0,
"total_ms": 0,
"streaming": true,
"duration_seconds": 0,
"full": {
"mime_type": "audio/wav",
"sample_rate": 0,
"data_base64": "string"
},
"phone": {
"mime_type": "audio/wav",
"sample_rate": 0,
"data_base64": "string"
}
}
],
"usage": {
"samples_today": 0,
"daily_samples": 0,
"remaining": 0
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Request Handoff
Flag the call for a human follow-up: the first request puts a task note for a human on the lead's timeline (RO-134). RO-064: with ``live_transfer: true`` and a live-transfer target the workspace allows now (Settings -> Live transfer: enabled, within its hours, on an outbound call dialled through LiveKit SIP, not a test call, no opt-out), the answer carries ``transfer`` (the team line and its ring timeout) and the task note waits for ``/transfer-result`` instead.
Save Answer
Save one qualification answer. 422 for a field this call doesn't collect.