List voices you can use
curl --request GET \
--url https://mvp.tryunsora.com/api/v1/voice-clones \
--header 'Authorization: Bearer <token>'import requests
url = "https://mvp.tryunsora.com/api/v1/voice-clones"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mvp.tryunsora.com/api/v1/voice-clones', 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://mvp.tryunsora.com/api/v1/voice-clones",
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://mvp.tryunsora.com/api/v1/voice-clones"
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://mvp.tryunsora.com/api/v1/voice-clones")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mvp.tryunsora.com/api/v1/voice-clones")
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{
"success": true,
"presets": [
{
"id": "<string>",
"label": "<string>"
}
],
"clones": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"sampleAsset": {},
"createdAt": "2023-11-07T05:31:56Z"
}
],
"elevenV3Voices": [
{}
],
"elevenLabsConfigured": true,
"maxClones": 10,
"cloneCreditCost": 15
}{
"error": "<string>",
"success": true,
"code": "<string>",
"message": "<string>"
}Voice clones
List voices you can use
List the MiniMax preset voices, the Eleven v3 voices and your own cloned voices, with the ids to pass as voice_id.
GET
/
voice-clones
List voices you can use
curl --request GET \
--url https://mvp.tryunsora.com/api/v1/voice-clones \
--header 'Authorization: Bearer <token>'import requests
url = "https://mvp.tryunsora.com/api/v1/voice-clones"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mvp.tryunsora.com/api/v1/voice-clones', 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://mvp.tryunsora.com/api/v1/voice-clones",
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://mvp.tryunsora.com/api/v1/voice-clones"
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://mvp.tryunsora.com/api/v1/voice-clones")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mvp.tryunsora.com/api/v1/voice-clones")
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{
"success": true,
"presets": [
{
"id": "<string>",
"label": "<string>"
}
],
"clones": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"sampleAsset": {},
"createdAt": "2023-11-07T05:31:56Z"
}
],
"elevenV3Voices": [
{}
],
"elevenLabsConfigured": true,
"maxClones": 10,
"cloneCreditCost": 15
}{
"error": "<string>",
"success": true,
"code": "<string>",
"message": "<string>"
}Returns every voice you can use: the 12 MiniMax presets (
presets), the 20 Eleven v3 voices (elevenV3Voices) and your cloned voices (clones). Any of their ids works as voice_id in Create voiceover and Talking avatar. Re-voice a recording takes cloned voices only.
curl "https://mvp.tryunsora.com/api/v1/voice-clones" \
-H "Authorization: Bearer uns_YOUR_API_KEY"
Authorizations
An Unsora API key (uns_…). A Clerk session token also works.
Response
Voices
The 12 MiniMax preset voices.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The Eleven v3 voices (also listed by GET /voiceovers/voices).
False when cloning is unavailable on this server.
Example:
10
Example:
15

