Needs keys Searches the ElevenLabs shared voice library. Live results need ELEVENLABS_API_KEY. Without it (or with TRIED_MOCK_PROVIDERS=1) the endpoint filters a fixed list of five sample voices, so the flow still works keyless.
Pass a result's public_owner_id and voice_id to Add community voice to use it on an agent.
Request#
| Query parameter | Type | Required | Description |
|---|---|---|---|
search |
string | No | Text to match. In mock mode it matches the voice name and description, ignoring case. |
gender |
string | No | Exact gender filter, for example female. |
language |
string | No | Exact language code, for example en. |
accent |
string | No | Exact accent, for example australian. |
page_size |
integer | No | Results to return. 1 to 100, default 30. Values outside the range are clamped. |
Example request#
curl "https://api.tried.com.au/search-community-voice?search=receptionist&accent=australian" \
-H "Authorization: Bearer $TRIED_API_KEY"const params = new URLSearchParams({ search: "receptionist", accent: "australian" });
const res = await fetch(`https://api.tried.com.au/search-community-voice?${params}`, {
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const { voices } = await res.json();import os, requests
res = requests.get(
"https://api.tried.com.au/search-community-voice",
params={"search": "receptionist", "accent": "australian"},
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
voices = res.json()["voices"]Response#
200 OK
{
"voices": [
{
"public_owner_id": "owner_a1",
"voice_id": "shared_harper",
"voice_name": "Harper",
"gender": "female",
"accent": "australian",
"language": "en",
"description": "Warm, calm receptionist voice",
"preview_audio_url": null,
"use_case": "conversational",
"provider": "elevenlabs"
}
]
}| Field | Type | Description |
|---|---|---|
public_owner_id |
string | ElevenLabs ID of the voice's owner. Needed to add the voice. |
voice_id |
string | ElevenLabs shared voice ID. It is not a Tried voice_id until you add it. |
voice_name |
string | Name in the shared library. |
gender, accent, language |
string | Labels from ElevenLabs. Empty string when ElevenLabs has none. |
description |
string | Description from ElevenLabs. |
preview_audio_url |
string or null | ElevenLabs preview URL when there is one. null in mock mode. |
use_case |
string | ElevenLabs use case label, for example conversational. |
provider |
string | Always elevenlabs. |
Errors#
| Status | When |
|---|---|
400 |
ElevenLabs shared voices failed (<status>) when ElevenLabs returns an error. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the agents scope. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.
Retell compatibility#
Retell's endpoint at this path is POST with a JSON body. Tried uses GET with query parameters, searches ElevenLabs only, and returns a different voice shape.