cURL
curl --request GET \
--url https://api.creatify.ai/api/voices/count/ \
--header 'X-API-ID: <api-key>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.creatify.ai/api/voices/count/"
headers = {
"X-API-ID": "<api-key>",
"X-API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-ID': '<api-key>', 'X-API-KEY': '<api-key>'}};
fetch('https://api.creatify.ai/api/voices/count/', 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://api.creatify.ai/api/voices/count/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-ID: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$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://api.creatify.ai/api/voices/count/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-ID", "<api-key>")
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.creatify.ai/api/voices/count/")
.header("X-API-ID", "<api-key>")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creatify.ai/api/voices/count/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-ID"] = '<api-key>'
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"max_count": 123,
"current_count": 123
}API Reference
Retrieve Voice Clone Quota
How many voices the workspace has cloned, and the cap that applies to the default provider.
GET
/
api
/
voices
/
count
/
cURL
curl --request GET \
--url https://api.creatify.ai/api/voices/count/ \
--header 'X-API-ID: <api-key>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.creatify.ai/api/voices/count/"
headers = {
"X-API-ID": "<api-key>",
"X-API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-ID': '<api-key>', 'X-API-KEY': '<api-key>'}};
fetch('https://api.creatify.ai/api/voices/count/', 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://api.creatify.ai/api/voices/count/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-ID: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$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://api.creatify.ai/api/voices/count/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-ID", "<api-key>")
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.creatify.ai/api/voices/count/")
.header("X-API-ID", "<api-key>")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creatify.ai/api/voices/count/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-ID"] = '<api-key>'
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"max_count": 123,
"current_count": 123
}current_count is the number of cloned voices in the workspace, whichever provider they were cloned with.
max_count describes the default provider, fishaudio, which has no cap — so it is reported as a large sentinel value (999999) rather than a real limit. max_count - current_count will always tell you there is room to clone.
The only cap that exists is on ElevenLabs voices (one voice slot each; 3 per workspace by default). It is enforced when you call Clone Voice with voice_provider: "elevenlabs", and the error response says how many slots you have.Authorizations
API ID, from your settings page.
API Key, from your settings page.
Query Parameters
elevenlabs reports the workspace's ElevenLabs voice slots and how many are used. Omitted, it counts every cloned voice.
Available options:
elevenlabs Response
200 - application/json
The maximum number of cloned voices allowed in the workspace. FishAudio, the default provider, has no limit, so this reports 999999; ElevenLabs clones are still bounded by purchased voice slots.
The number of cloned voices currently in the workspace.

