curl --request GET \
--url https://api.opper.ai/v3/audio/voices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.opper.ai/v3/audio/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.opper.ai/v3/audio/voices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "<string>",
"object": "<string>",
"provider": "<string>",
"type": "<string>",
"accent": "<string>",
"created": 123,
"default": true,
"description": "<string>",
"expires_at": 123,
"gender": "<string>",
"languages": [
"<string>"
],
"name": "<string>",
"preview_url": "<string>"
}
],
"meta": {
"limit": 123,
"model": "<string>",
"offset": 123,
"presets_source": "provider",
"total": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}List Voices
Without model: the project’s custom cloned voices, newest first. With model (a text-to-speech model id): every voice that model takes as voice on /v3/audio/speech, which is the provider’s preset voices (type: preset) followed by the project’s clones on that provider (type: custom). Presets are read from the provider when it can list them (meta.presets_source: provider, refreshed every few hours) and otherwise come from the model’s declared voices (meta.presets_source: catalog). Only voices every account on the provider can use are listed as presets; no other customer’s voices are ever shown. Paginated with the shared meta+data shape.
curl --request GET \
--url https://api.opper.ai/v3/audio/voices \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.opper.ai/v3/audio/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.opper.ai/v3/audio/voices', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"id": "<string>",
"object": "<string>",
"provider": "<string>",
"type": "<string>",
"accent": "<string>",
"created": 123,
"default": true,
"description": "<string>",
"expires_at": 123,
"gender": "<string>",
"languages": [
"<string>"
],
"name": "<string>",
"preview_url": "<string>"
}
],
"meta": {
"limit": 123,
"model": "<string>",
"offset": 123,
"presets_source": "provider",
"total": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}Authorizations
API key authentication. Pass your API key as a Bearer token.
Query Parameters
Text-to-speech model id, e.g. elevenlabs/eleven_v3. Lists that model's preset voices plus the project's clones on its provider.
With model: preset or custom
preset, custom With model: language code, e.g. de or en-GB. Matches by prefix, so en matches en-US.
With model: gender, as the provider labels it (e.g. female, male)
Max items (default 20, max 100; with model: default 100, max 1000)
Items to skip (default 0)