Get available voices
curl --request GET \
--url https://repforce.ai/api/user/assistants/voices \
--header 'Authorization: Bearer <token>'import requests
url = "https://repforce.ai/api/user/assistants/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://repforce.ai/api/user/assistants/voices', 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://repforce.ai/api/user/assistants/voices",
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://repforce.ai/api/user/assistants/voices"
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://repforce.ai/api/user/assistants/voices")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://repforce.ai/api/user/assistants/voices")
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": "Alloy",
"language_id": 1,
"gender": "female",
"preview_url": "https://cdn.openai.com/API/voice-previews/alloy.flac",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": null
},
{
"id": 10,
"name": "Zephyr",
"language_id": 1,
"gender": "female",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Zephyr.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
},
{
"id": 11,
"name": "Puck",
"language_id": 1,
"gender": "male",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Puck.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
}
]
Assistants
Get available voices
Retrieve all available voices for assistant configuration
GET
/
user
/
assistants
/
voices
Get available voices
curl --request GET \
--url https://repforce.ai/api/user/assistants/voices \
--header 'Authorization: Bearer <token>'import requests
url = "https://repforce.ai/api/user/assistants/voices"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://repforce.ai/api/user/assistants/voices', 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://repforce.ai/api/user/assistants/voices",
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://repforce.ai/api/user/assistants/voices"
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://repforce.ai/api/user/assistants/voices")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://repforce.ai/api/user/assistants/voices")
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": "Alloy",
"language_id": 1,
"gender": "female",
"preview_url": "https://cdn.openai.com/API/voice-previews/alloy.flac",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": null
},
{
"id": 10,
"name": "Zephyr",
"language_id": 1,
"gender": "female",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Zephyr.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
},
{
"id": 11,
"name": "Puck",
"language_id": 1,
"gender": "male",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Puck.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
}
]
This endpoint returns a list of all available voices that can be used when creating or updating assistants, with optional filtering by assistant mode and language.
Query Parameters
Filter voices by assistant mode. Options:
pipeline, multimodal, dualplexFilter voices by language ID. Use the Get Languages endpoint to get available language IDs.
Response fields
Show properties
Show properties
The unique identifier of the voice
The display name of the voice
The language ID this voice is associated with
The gender of the voice (male/female)
URL to an audio sample of the voice. Can be used to let users preview voices before selecting one.
The accent of the voice (e.g., “American”, “British”). May be
null.The age category of the voice (e.g., “Young”, “Middle aged”). May be
null.The TTS provider ID this voice belongs to. Use the Get Synthesizer Providers endpoint to resolve provider names. May be
null.[
{
"id": 1,
"name": "Alloy",
"language_id": 1,
"gender": "female",
"preview_url": "https://cdn.openai.com/API/voice-previews/alloy.flac",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": null
},
{
"id": 10,
"name": "Zephyr",
"language_id": 1,
"gender": "female",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Zephyr.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
},
{
"id": 11,
"name": "Puck",
"language_id": 1,
"gender": "male",
"preview_url": "https://gstatic.com/aistudio/voices/samples/Puck.wav",
"accent": null,
"age": "Middle aged",
"synthesizer_provider_id": 1
}
]
Notes
- Use the
idfield asvoice_idwhen creating or updating assistants - Filter by
modeto get only voices compatible with your intended assistant type - Filter by
language_idto get voices for a specific language - If no filters are provided, all available voices are returned
- Only voices that are public or belong to the authenticated user are returned
⌘I

