curl --request GET \
--url https://easy-peasy.ai/api/get-text-to-speech-voices \
--header 'x-api-key: <api-key>'import requests
url = "https://easy-peasy.ai/api/get-text-to-speech-voices"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://easy-peasy.ai/api/get-text-to-speech-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://easy-peasy.ai/api/get-text-to-speech-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 => [
"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://easy-peasy.ai/api/get-text-to-speech-voices"
req, _ := http.NewRequest("GET", url, nil)
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://easy-peasy.ai/api/get-text-to-speech-voices")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://easy-peasy.ai/api/get-text-to-speech-voices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"voices": [
{
"id": "21m00Tcm4TlvDq8ikWAM",
"name": "Rachel",
"description": "calm",
"image": "https://media.easy-peasy.ai/voices/rachel.png",
"language": "English",
"accent": "American"
},
{
"id": "alloy",
"name": "Alloy",
"description": "A neutral, balanced voice",
"image": "https://media.easy-peasy.ai/voices/alloy.png",
"language": "English"
}
],
"total": 2,
"filters": {
"language": null,
"accent": null
},
"available": {
"languages": [
"English",
"Spanish",
"French",
"German"
],
"accents": [
"American",
"British",
"Australian"
]
}
}Get TTS Voices
Retrieve a list of available voices for text-to-speech generation.
Returns all predefined voices (ElevenLabs and OpenAI) and optionally the user’s custom cloned voices.
Filtering:
- Filter by language using the
languagequery parameter - Filter by accent using the
accentquery parameter - Both filters can be used together
Authentication:
- Optional: Endpoint works without authentication for public voices
- Required for custom voices: Include
x-api-keyheader
curl --request GET \
--url https://easy-peasy.ai/api/get-text-to-speech-voices \
--header 'x-api-key: <api-key>'import requests
url = "https://easy-peasy.ai/api/get-text-to-speech-voices"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://easy-peasy.ai/api/get-text-to-speech-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://easy-peasy.ai/api/get-text-to-speech-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 => [
"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://easy-peasy.ai/api/get-text-to-speech-voices"
req, _ := http.NewRequest("GET", url, nil)
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://easy-peasy.ai/api/get-text-to-speech-voices")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://easy-peasy.ai/api/get-text-to-speech-voices")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"voices": [
{
"id": "21m00Tcm4TlvDq8ikWAM",
"name": "Rachel",
"description": "calm",
"image": "https://media.easy-peasy.ai/voices/rachel.png",
"language": "English",
"accent": "American"
},
{
"id": "alloy",
"name": "Alloy",
"description": "A neutral, balanced voice",
"image": "https://media.easy-peasy.ai/voices/alloy.png",
"language": "English"
}
],
"total": 2,
"filters": {
"language": null,
"accent": null
},
"available": {
"languages": [
"English",
"Spanish",
"French",
"German"
],
"accents": [
"American",
"British",
"Australian"
]
}
}Authorizations
API key for authentication. Get yours at https://easy-peasy.ai/settings/api
Headers
Your API key (optional, required for custom voices)
Query Parameters
Filter voices by language (e.g., "English", "Spanish", "French")
Filter voices by accent (e.g., "American", "British", "Australian")
Include user's custom cloned voices in the response (requires authentication)
Response
Successfully retrieved voices
Array of voice objects
Show child attributes
Show child attributes
Total number of voices returned
50
Filters that were applied to the results
Show child attributes
Show child attributes
Available filter options based on current results
Show child attributes
Show child attributes
Was this page helpful?
