Get synthesizer providers
curl --request GET \
--url https://app.soara.ai/api/user/assistants/synthesizer-providers \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.soara.ai/api/user/assistants/synthesizer-providers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.soara.ai/api/user/assistants/synthesizer-providers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.soara.ai/api/user/assistants/synthesizer-providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.soara.ai/api/user/assistants/synthesizer-providers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.soara.ai/api/user/assistants/synthesizer-providers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.soara.ai/api/user/assistants/synthesizer-providers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 2,
"name": "Azure",
"code": "azure"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
Assistants
Get synthesizer providers
Retrieve available TTS (text-to-speech) synthesizer providers
GET
/
user
/
assistants
/
synthesizer-providers
Get synthesizer providers
curl --request GET \
--url https://app.soara.ai/api/user/assistants/synthesizer-providers \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.soara.ai/api/user/assistants/synthesizer-providers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.soara.ai/api/user/assistants/synthesizer-providers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.soara.ai/api/user/assistants/synthesizer-providers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.soara.ai/api/user/assistants/synthesizer-providers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.soara.ai/api/user/assistants/synthesizer-providers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.soara.ai/api/user/assistants/synthesizer-providers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 2,
"name": "Azure",
"code": "azure"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
This endpoint returns a list of available synthesizer providers that can be used when creating or updating assistants. Use the returned
id as synthesizer_provider_id when configuring an assistant.
Query Parameters
integer
Filter providers by language support. Only returns providers that support the given language. Use the Get Languages endpoint to get available language IDs.
Response fields
array
[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 2,
"name": "Azure",
"code": "azure"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
[
{
"id": 1,
"name": "ElevenLabs",
"code": "elevenlabs"
},
{
"id": 3,
"name": "Cartesia",
"code": "cartesia"
}
]
Notes
- If no
language_idfilter is provided, all providers are returned - Not all providers support all languages — use the
language_idfilter to get compatible providers - Synthesizer providers are only relevant for
pipelineanddualplexmodes (multimodal mode handles TTS internally) - If you don’t set
synthesizer_provider_idwhen creating an assistant, the language’s default provider is used

