Get All Projects
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-projects"
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-all-projects', 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-all-projects",
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-all-projects"
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-all-projects")
.header("Authorization", "Bearer <token>")
.asString();{
"projects": [
{
"id": "<string>",
"title": "<string>",
"thumbnail": "<string>",
"billedDuration": 123,
"status": "queued",
"projectType": "clipping",
"source": "Upload",
"genre": "talking",
"topics": [
"<string>"
],
"clipDurations": [
[
123
]
],
"selectedStart": 123,
"selectedEnd": 123,
"exportResolution": 123,
"exportOrientation": "landscape",
"captionsPreset": "<string>",
"enableCaptions": true,
"enableEmojis": true,
"enableHighlights": true,
"language": "<string>",
"dubbingLanguage": "<string>",
"translateTranscription": true,
"translationLanguages": [
"<string>"
],
"transcriptionScript": "native",
"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>"
},
"urls": {
"videoFile": "<string>",
"audioFile": "<string>",
"transcription": "<string>",
"transcription_srt": "<string>",
"transcription_vtt": "<string>",
"transcription_csv": "<string>",
"transcription_txt": "<string>"
},
"createdAt": 123,
"updatedAt": 123
}
],
"currentPage": 123,
"totalPages": 123,
"totalProjects": 123
}Track & Retrieve
Get All Projects
Retrieve all automation projects in your studio
GET
/
automation
/
get-all-projects
Get All Projects
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-projects"
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-all-projects', 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-all-projects",
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-all-projects"
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-all-projects")
.header("Authorization", "Bearer <token>")
.asString();{
"projects": [
{
"id": "<string>",
"title": "<string>",
"thumbnail": "<string>",
"billedDuration": 123,
"status": "queued",
"projectType": "clipping",
"source": "Upload",
"genre": "talking",
"topics": [
"<string>"
],
"clipDurations": [
[
123
]
],
"selectedStart": 123,
"selectedEnd": 123,
"exportResolution": 123,
"exportOrientation": "landscape",
"captionsPreset": "<string>",
"enableCaptions": true,
"enableEmojis": true,
"enableHighlights": true,
"language": "<string>",
"dubbingLanguage": "<string>",
"translateTranscription": true,
"translationLanguages": [
"<string>"
],
"transcriptionScript": "native",
"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>"
},
"urls": {
"videoFile": "<string>",
"audioFile": "<string>",
"transcription": "<string>",
"transcription_srt": "<string>",
"transcription_vtt": "<string>",
"transcription_csv": "<string>",
"transcription_txt": "<string>"
},
"createdAt": 123,
"updatedAt": 123
}
],
"currentPage": 123,
"totalPages": 123,
"totalProjects": 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 a paginated list of all video projects created through the automation API. Monitor project status and access project details.Rate Limiting
This endpoint is rate limited to 10 requests per minute per API key.Filtering & Search
Use query parameters to filter, search, and sort the results.string[]
Filter by project type. Pass multiple values to match any of them.
clipping- AI clip generationcaptions- Caption generationreframe- Video reframingdubbing- Voice dubbingtranscription- Audio transcription
string[]
Filter by processing status. Pass multiple values to match any of them.
queued- Waiting to be processedprocessing- Currently being processedcompleted- Processing finished successfullyfailed- Processing failedinvalid- Video file was invalidexpired- Project has expired
string
Search projects by title. Case-insensitive partial match.
integer
Unix timestamp. Only return projects created after this time.
integer
Unix timestamp. Only return projects created before this time.
string
default:"createdAt"
Field to sort by.
createdAt- Sort by creation dateupdatedAt- Sort by last update dateduration- Sort by billed duration
string
default:"desc"
Sort direction.
asc- Ascending (oldest/shortest first)desc- Descending (newest/longest first)
Response
array
Array of project objects
Show Project Object
Show Project Object
string
Unique project identifier
string
Project title (usually the filename)
string
Thumbnail URL for the project
number
Duration in seconds that was billed for this project
string
Current processing status
processing- Project is being processedcompleted- Processing completed successfullyfailed- Processing failed
string
Type of project
clipping- AI clip generationcaptions- Caption generationreframe- Video reframingdubbing- Voice dubbingtranscription- Audio transcription
string
Source of the video content
Upload- Uploaded fileYoutube- YouTube URL
string
Video genre used for AI analysis
array
Array of identified topics in the video
array
Array of clip duration preferences
number
Start time in seconds for processing (null if entire video)
number
End time in seconds for processing (null if entire video)
integer
Output resolution for the project
string
Output orientation
string
Caption style preset ID (null if captions disabled)
boolean
Whether captions are enabled
boolean
Whether emojis are added to captions
boolean
Whether keyword highlighting is enabled
string
Primary language of the video content
string
Target dubbing language (null if not applicable)
boolean
Whether transcription is translated
array
Array of languages for translation
string
Script format for transcription (“native” or “roman”)
object
Video file metadata including duration, resolution, format, etc.
object
Project URLs and assets (populated when processing completes)
integer
Unix timestamp when the project was created
integer
Unix timestamp when the project was last updated
integer
Current page number
integer
Total number of pages
integer
Total number of projects
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/get-all-projects?page=1&pageSize=20&projectType=clipping&status=completed&sortBy=createdAt&sortOrder=desc" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
const params = new URLSearchParams({
page: '1',
pageSize: '20',
projectType: 'clipping',
status: 'completed',
sortBy: 'createdAt',
sortOrder: 'desc'
});
const response = await fetch(`https://public.reap.video/api/v1/automation/get-all-projects?${params}`, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(`Found ${data.totalProjects} projects`);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
params = {
'page': 1,
'pageSize': 20,
'projectType': 'clipping',
'status': 'completed',
'sortBy': 'createdAt',
'sortOrder': 'desc'
}
response = requests.get(
'https://public.reap.video/api/v1/automation/get-all-projects',
headers=headers,
params=params
)
data = response.json()
print(f"Found {data['totalProjects']} projects")
<?php
$params = http_build_query([
'page' => 1,
'pageSize' => 20,
'projectType' => 'clipping',
'status' => 'completed',
'sortBy' => 'createdAt',
'sortOrder' => 'desc'
]);
$ch = curl_init('https://public.reap.video/api/v1/automation/get-all-projects?' . $params);
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);
$data = json_decode($response, true);
echo 'Found ' . $data['totalProjects'] . ' projects' . "\n";
?>
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://public.reap.video/api/v1/automation/get-all-projects?page=1&pageSize=20&projectType=clipping&status=completed&sortBy=createdAt&sortOrder=desc"
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)
fmt.Println(string(body))
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetAllProjectsExample {
public static void main(String[] args) throws Exception {
URL url = new URL("https://public.reap.video/api/v1/automation/get-all-projects?page=1&pageSize=20&projectType=clipping&status=completed&sortBy=createdAt&sortOrder=desc");
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("Found projects: " + response.toString());
}
}
Example Response
Project Status Values
queued- Project is queued and waiting to be processedprocessing- Project is currently being processed (video analysis, clip generation, etc.)completed- All processing has finished successfully, clips are readyfailed- Processing failed due to an errorinvalid- Video file was invalid or unsupportedexpired- Project has expired
Project Types
clipping- AI-powered clip generation from long-form videoscaptions- Caption and subtitle generationreframe- Automatic video reframing for different aspect ratiosdubbing- Voice dubbing and translationtranscription- Audio transcription
Use Cases
Dashboard Creation
Build project management dashboards
Batch Processing
Monitor multiple projects simultaneously
Analytics
Track processing patterns and success rates
Content Management
Organize and categorize video projects
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Page number for pagination
Number of projects per page (max 100)
Filter by project type
Available options:
clipping, captions, reframe, dubbing, transcription Filter by project status
Available options:
queued, prepped, draft, processing, finalizing, completed, invalid, expired, failed, error Search projects by title
Filter projects created after this Unix timestamp
Filter projects created before this Unix timestamp
Sort field
Available options:
createdAt, updatedAt, duration Sort direction
Available options:
asc, desc Was this page helpful?