AI Clipping
Get AI Clipping
Returns the full job resource including produced clips, statuses, and presigned download URLs.
GET
/
v3
/
ai-clipping
/
{job_id}
Get AI Clipping
curl --request GET \
--url https://api.heygen.com/v3/ai-clipping/{job_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/ai-clipping/{job_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>",
"title": "<string>",
"input_language": "<string>",
"source_duration": 123,
"output_settings": {
"duration_types": [],
"aspect_ratio": "portrait",
"captions": true,
"caption_style": "outline_classic",
"prompt": "<string>"
},
"clips": [
{
"id": "<string>",
"duration_seconds": 123,
"title": "<string>",
"virality_score": 50,
"thumbnail_url": "<string>",
"video_url": "<string>",
"failure_message": "<string>"
}
],
"progress": 0,
"callback_id": "<string>",
"created_at": 123,
"failure_message": "<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": "not_found",
"message": "AI clip 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 AI clip job identifier
Response
Successful response
Full job resource returned by Get, List, and webhook payloads.
Show child attributes
Show child attributes
⌘I
Get AI Clipping
curl --request GET \
--url https://api.heygen.com/v3/ai-clipping/{job_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.heygen.com/v3/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_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/ai-clipping/{job_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.heygen.com/v3/ai-clipping/{job_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>",
"title": "<string>",
"input_language": "<string>",
"source_duration": 123,
"output_settings": {
"duration_types": [],
"aspect_ratio": "portrait",
"captions": true,
"caption_style": "outline_classic",
"prompt": "<string>"
},
"clips": [
{
"id": "<string>",
"duration_seconds": 123,
"title": "<string>",
"virality_score": 50,
"thumbnail_url": "<string>",
"video_url": "<string>",
"failure_message": "<string>"
}
],
"progress": 0,
"callback_id": "<string>",
"created_at": 123,
"failure_message": "<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": "not_found",
"message": "AI clip 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
}
}
