Models
Get an Audio Voice
Returns one model-backed audio voice, owned by the caller’s workspace or public, and its current lifecycle state. PENDING covers queued and running work, ACTIVE is ready for inference, and FAILED is terminal. An instant voice is ACTIVE as soon as it can speak.
GET
/
v3
/
models
/
audio
/
voices
/
{voice_id}
Get an Audio Voice
curl --request GET \
--url https://api.heygen.com/v3/models/audio/voices/{voice_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/models/audio/voices/{voice_id}"
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://api.heygen.com/v3/models/audio/voices/{voice_id}', 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.heygen.com/v3/models/audio/voices/{voice_id}",
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://api.heygen.com/v3/models/audio/voices/{voice_id}"
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://api.heygen.com/v3/models/audio/voices/{voice_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/models/audio/voices/{voice_id}")
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{
"data": {
"voice_id": "<string>",
"mode": "professional",
"name": "<string>",
"status": "PENDING",
"created_at": 123,
"language": "<string>",
"failure_reason": "INVALID_AUDIO",
"preview_audio_url": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Video not found",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "unknown_node_type",
"message": "Unknown node type",
"node_id": "<string>",
"port": "<string>",
"path": "<string>"
}
],
"request_id": "8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "voice_not_found",
"message": "Voice not found.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}Authorizations
ApiKeyAuthBearerAuth
HeyGen API key. Obtain from your HeyGen dashboard.
Path Parameters
Unique voice identifier
Response
Successful response
Customer-visible state of one model-backed audio voice.
Show child attributes
Show child attributes
⌘I
Get an Audio Voice
curl --request GET \
--url https://api.heygen.com/v3/models/audio/voices/{voice_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/models/audio/voices/{voice_id}"
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://api.heygen.com/v3/models/audio/voices/{voice_id}', 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.heygen.com/v3/models/audio/voices/{voice_id}",
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://api.heygen.com/v3/models/audio/voices/{voice_id}"
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://api.heygen.com/v3/models/audio/voices/{voice_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/models/audio/voices/{voice_id}")
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{
"data": {
"voice_id": "<string>",
"mode": "professional",
"name": "<string>",
"status": "PENDING",
"created_at": 123,
"language": "<string>",
"failure_reason": "INVALID_AUDIO",
"preview_audio_url": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "Video not found",
"param": "<string>",
"doc_url": "<string>",
"errors": [
{
"code": "unknown_node_type",
"message": "Unknown node type",
"node_id": "<string>",
"port": "<string>",
"path": "<string>"
}
],
"request_id": "8c4f0b9e1d2a4f6b9e3c7a1d5f2b8e40"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "voice_not_found",
"message": "Voice not found.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after the duration specified in the Retry-After header.",
"param": null,
"doc_url": null
}
}
