Templates
Get Template
Returns template details including its variable schema (with current default values) and scenes. Variable defaults are returned in the same shape the generate request accepts, so a response can be edited and posted back. Only draft version 4 templates (the current editor format) are supported.
GET
/
v3
/
templates
/
{template_id}
Get Template
curl --request GET \
--url https://api.heygen.com/v3/templates/{template_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/templates/{template_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/templates/{template_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/templates/{template_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/templates/{template_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/templates/{template_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/templates/{template_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": {
"id": "<string>",
"name": "<string>",
"thumbnail_url": "<string>",
"aspect_ratio": "16:9",
"created_at": 1711929600,
"updated_at": 1711929600,
"variables": {},
"scene_ids": [
"<string>"
],
"scenes": [
{
"scene_id": "<string>",
"script": "<string>",
"variables": [
{
"name": "<string>",
"variable_type": "<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>"
}
]
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "template_not_found",
"message": "Template 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 template identifier
Response
Successful response
Template detail including its variable schema and scenes.
Show child attributes
Show child attributes
⌘I
Get Template
curl --request GET \
--url https://api.heygen.com/v3/templates/{template_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/templates/{template_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/templates/{template_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/templates/{template_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/templates/{template_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/templates/{template_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/templates/{template_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": {
"id": "<string>",
"name": "<string>",
"thumbnail_url": "<string>",
"aspect_ratio": "16:9",
"created_at": 1711929600,
"updated_at": 1711929600,
"variables": {},
"scene_ids": [
"<string>"
],
"scenes": [
{
"scene_id": "<string>",
"script": "<string>",
"variables": [
{
"name": "<string>",
"variable_type": "<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>"
}
]
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "template_not_found",
"message": "Template 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
}
}
