Needs keys Returns a short MP3 of a catalog voice saying "Hi, thanks for calling. How can I help you today?". It needs ELEVENLABS_API_KEY. Without it the endpoint returns 404, and the dashboard voice picker falls back to the browser's speech synthesis.
The sample is always generated through ElevenLabs text to speech, so use it with 11labs- catalog voices. Workspace voices (custom_voice_) are not supported.
Request#
| Path parameter | Type | Required | Description |
|---|---|---|---|
voice_id |
string | Yes | A catalog voice ID, for example 11labs-Rachel. |
| Query parameter | Type | Required | Description |
|---|---|---|---|
model |
string | No | ElevenLabs model ID. Default eleven_flash_v2_5. |
Example request#
curl https://api.tried.com.au/voice-preview/11labs-Rachel \
-H "Authorization: Bearer $TRIED_API_KEY" \
-o rachel.mp3import { writeFile } from "node:fs/promises";
const res = await fetch("https://api.tried.com.au/voice-preview/11labs-Rachel", {
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
await writeFile("rachel.mp3", Buffer.from(await res.arrayBuffer()));import os, requests
res = requests.get(
"https://api.tried.com.au/voice-preview/11labs-Rachel",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
open("rachel.mp3", "wb").write(res.content)Response#
200 OK
The body is MP3 audio (Content-Type: audio/mpeg, 44.1 kHz, 64 kbps) with Cache-Control: private, max-age=86400. The API caches each voice and model pair in memory, so repeat requests do not call ElevenLabs again.
Errors#
| Status | When |
|---|---|
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the agents scope. |
404 |
Voice <voice_id> not found when the ID is not a catalog voice, or Voice previews are unavailable: ELEVENLABS_API_KEY is not set. |
429 |
Rate limit exceeded. See Rate limits. |
502 |
ElevenLabs request failed: ... or ElevenLabs returned <status>. |
See Errors for the body format.