Video Agent
List Session Videos
Returns all videos produced within a Video Agent session, sorted newest-first.
GET
/
v3
/
video-agents
/
{session_id}
/
videos
List Session Videos
curl --request GET \
--url https://api.heygen.com/v3/video-agents/{session_id}/videos \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/video-agents/{session_id}/videos"
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/video-agents/{session_id}/videos', 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/video-agents/{session_id}/videos",
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/video-agents/{session_id}/videos"
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/video-agents/{session_id}/videos")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/video-agents/{session_id}/videos")
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>",
"title": "My Generated Video",
"created_at": 1711929600,
"completed_at": 1711930200,
"video_url": "https://files.heygen.ai/video/abc123.mp4",
"thumbnail_url": "https://files.heygen.ai/thumb/abc123.jpg",
"gif_url": "https://files.heygen.ai/gif/abc123.gif",
"captioned_video_url": "https://files.heygen.ai/video/abc123_captioned.mp4",
"subtitle_url": "https://files.heygen.ai/srt/abc123.srt",
"duration": 30.5,
"folder_id": "folder_abc123",
"output_language": "en-US",
"failure_code": "rendering_failed",
"failure_message": "Avatar rendering timed out",
"video_page_url": "https://app.heygen.com/video/abc123"
}
],
"has_more": true,
"next_token": "<string>"
}{
"error": {
"code": "invalid_parameter",
"message": "Video not found",
"param": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "not_found",
"message": "Session 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
Session ID
Previous
Stop video agent sessionHalts an active agent run at its next checkpoint. Partial results are preserved.
Next
⌘I
List Session Videos
curl --request GET \
--url https://api.heygen.com/v3/video-agents/{session_id}/videos \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/video-agents/{session_id}/videos"
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/video-agents/{session_id}/videos', 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/video-agents/{session_id}/videos",
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/video-agents/{session_id}/videos"
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/video-agents/{session_id}/videos")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/video-agents/{session_id}/videos")
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>",
"title": "My Generated Video",
"created_at": 1711929600,
"completed_at": 1711930200,
"video_url": "https://files.heygen.ai/video/abc123.mp4",
"thumbnail_url": "https://files.heygen.ai/thumb/abc123.jpg",
"gif_url": "https://files.heygen.ai/gif/abc123.gif",
"captioned_video_url": "https://files.heygen.ai/video/abc123_captioned.mp4",
"subtitle_url": "https://files.heygen.ai/srt/abc123.srt",
"duration": 30.5,
"folder_id": "folder_abc123",
"output_language": "en-US",
"failure_code": "rendering_failed",
"failure_message": "Avatar rendering timed out",
"video_page_url": "https://app.heygen.com/video/abc123"
}
],
"has_more": true,
"next_token": "<string>"
}{
"error": {
"code": "invalid_parameter",
"message": "Video not found",
"param": "<string>",
"doc_url": "<string>"
}
}{
"error": {
"code": "authentication_failed",
"message": "Invalid or expired API key. Verify your x-api-key header.",
"param": null,
"doc_url": null
}
}{
"error": {
"code": "not_found",
"message": "Session 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
}
}
