Get Clip Details
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-clip-details \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-clip-details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.reap.video/api/v1/automation/get-clip-details', 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://public.reap.video/api/v1/automation/get-clip-details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://public.reap.video/api/v1/automation/get-clip-details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public.reap.video/api/v1/automation/get-clip-details")
.header("Authorization", "Bearer <token>")
.asString();{
"id": "<string>",
"projectId": "<string>",
"clipUrl": "<string>",
"startTime": 123,
"endTime": 123,
"duration": 123,
"topic": "<string>",
"title": "<string>",
"caption": "<string>",
"language": "<string>",
"translateTranscription": true,
"translationLanguages": [
"<string>"
],
"transcriptionScript": "native",
"viralityScore": 123,
"exportResolution": 123,
"exportOrientation": "landscape",
"captionsPreset": "<string>",
"enableCaptions": true,
"enableEmojis": true,
"enableHighlights": true,
"metadata": {
"width": 123,
"height": 123,
"aspectRatio": "<string>",
"size": 123,
"bitrate": 123,
"fps": 123,
"duration": 123,
"rotation": 123,
"resolution": 123,
"codec": "<string>",
"codecFullName": "<string>",
"codecTag": "<string>",
"format": "<string>",
"formatFullName": "<string>"
},
"createdAt": 123,
"updatedAt": 123
}Track & Retrieve
Get Clip Details
Retrieve details for a specific clip
GET
/
automation
/
get-clip-details
Get Clip Details
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-clip-details \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-clip-details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.reap.video/api/v1/automation/get-clip-details', 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://public.reap.video/api/v1/automation/get-clip-details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://public.reap.video/api/v1/automation/get-clip-details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public.reap.video/api/v1/automation/get-clip-details")
.header("Authorization", "Bearer <token>")
.asString();{
"id": "<string>",
"projectId": "<string>",
"clipUrl": "<string>",
"startTime": 123,
"endTime": 123,
"duration": 123,
"topic": "<string>",
"title": "<string>",
"caption": "<string>",
"language": "<string>",
"translateTranscription": true,
"translationLanguages": [
"<string>"
],
"transcriptionScript": "native",
"viralityScore": 123,
"exportResolution": 123,
"exportOrientation": "landscape",
"captionsPreset": "<string>",
"enableCaptions": true,
"enableEmojis": true,
"enableHighlights": true,
"metadata": {
"width": 123,
"height": 123,
"aspectRatio": "<string>",
"size": 123,
"bitrate": 123,
"fps": 123,
"duration": 123,
"rotation": 123,
"resolution": 123,
"codec": "<string>",
"codecFullName": "<string>",
"codecTag": "<string>",
"format": "<string>",
"formatFullName": "<string>"
},
"createdAt": 123,
"updatedAt": 123
}
For AI agents: a documentation index is at /llms.txt. Every page is also available as markdown, just append .md to the URL.
Overview
Get detailed information about a specific clip, including its download URL, AI-generated metadata, virality score, and export settings.Rate Limiting
This endpoint allows 60 requests per minute per API key. Each endpoint has its own budget, so this allowance is not shared with the rest of the API — see Rate limiting.Response
string
Unique identifier for the clip
string
ID of the parent project
string
Direct download URL for the final clip (includes captions if enabled)
number
Start time of the clip in the original video (seconds)
number
End time of the clip in the original video (seconds)
number
Duration of the clip in seconds
string
Primary topic or theme of the clip
string
AI-generated title for the clip
string
AI-generated caption/description for the clip
string
Language of the clip content
boolean
Whether transcription is translated
array
Array of languages for translation
string
Target dubbing language (for dubbing projects)
string
Script format for transcription (“native” or “roman”)
number
AI-predicted virality score (0-10, higher is better)
integer
Resolution of the exported clip
string
Orientation of the exported clip (“landscape”, “portrait”, “square”)
string
Caption style preset used for this clip
boolean
Whether captions are enabled for this clip
boolean
Whether emojis are added to captions
boolean
Whether keyword highlighting is enabled
object
Clip metadata including technical details
integer
Unix timestamp when the clip was created
integer
Unix timestamp when the clip was last updated
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/get-clip-details?projectId=65f1a2b3c4d5e6f7a8b9c0d2&clipId=65f1a2b3c4d5e6f7a8b9c0d4" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
const projectId = '65f1a2b3c4d5e6f7a8b9c0d2';
const clipId = '65f1a2b3c4d5e6f7a8b9c0d4';
const response = await fetch(`https://public.reap.video/api/v1/automation/get-clip-details?projectId=${projectId}&clipId=${clipId}`, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
const clip = await response.json();
console.log(`${clip.title} (Score: ${clip.viralityScore})`);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
project_id = '65f1a2b3c4d5e6f7a8b9c0d2'
clip_id = '65f1a2b3c4d5e6f7a8b9c0d4'
response = requests.get(
f'https://public.reap.video/api/v1/automation/get-clip-details?projectId={project_id}&clipId={clip_id}',
headers=headers
)
clip = response.json()
print(f"{clip['title']} (Score: {clip['viralityScore']})")
<?php
$projectId = '65f1a2b3c4d5e6f7a8b9c0d2';
$clipId = '65f1a2b3c4d5e6f7a8b9c0d4';
$url = 'https://public.reap.video/api/v1/automation/get-clip-details?projectId=' . $projectId . '&clipId=' . $clipId;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$clip = json_decode($response, true);
echo $clip['title'] . ' (Score: ' . $clip['viralityScore'] . ")\n";
?>
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type Clip struct {
Title string `json:"title"`
ViralityScore float64 `json:"viralityScore"`
}
func main() {
projectId := "65f1a2b3c4d5e6f7a8b9c0d2"
clipId := "65f1a2b3c4d5e6f7a8b9c0d4"
url := fmt.Sprintf("https://public.reap.video/api/v1/automation/get-clip-details?projectId=%s&clipId=%s", projectId, clipId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var clip Clip
json.Unmarshal(body, &clip)
fmt.Printf("%s (Score: %.1f)\n", clip.Title, clip.ViralityScore)
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetClipDetailsExample {
public static void main(String[] args) throws Exception {
String projectId = "65f1a2b3c4d5e6f7a8b9c0d2";
String clipId = "65f1a2b3c4d5e6f7a8b9c0d4";
URL url = new URL("https://public.reap.video/api/v1/automation/get-clip-details?projectId=" + projectId + "&clipId=" + clipId);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer YOUR_API_KEY");
conn.setRequestProperty("Content-Type", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
System.out.println(response.toString());
}
}
Example Response
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Unique identifier of the project
Unique identifier of the clip
Response
200 - application/json
Successful response
Direct download URL for the final clip (includes captions if enabled)
Available options:
native, roman Available options:
landscape, portrait, square Show child attributes
Show child attributes
Was this page helpful?