Get All Presets
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-presets \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-presets"
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-presets', 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-presets",
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-presets"
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-presets")
.header("Authorization", "Bearer <token>")
.asString();{
"presets": [
{
"id": "<string>",
"name": "<string>",
"source": "system",
"preferences": {
"addAudiogram": false,
"addCaptions": true,
"genre": "talking",
"language": "en",
"translationLanguage": "<string>",
"transcriptionScript": "native",
"orientation": "landscape",
"resolution": 720,
"clipDurations": [
[
123
]
]
}
}
],
"currentPage": 123,
"totalPages": 123,
"totalPresets": 123
}Presets & Languages
Get All Presets
Retrieve all available caption presets for your studio
GET
/
automation
/
get-all-presets
Get All Presets
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-presets \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-presets"
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-presets', 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-presets",
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-presets"
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-presets")
.header("Authorization", "Bearer <token>")
.asString();{
"presets": [
{
"id": "<string>",
"name": "<string>",
"source": "system",
"preferences": {
"addAudiogram": false,
"addCaptions": true,
"genre": "talking",
"language": "en",
"translationLanguage": "<string>",
"transcriptionScript": "native",
"orientation": "landscape",
"resolution": 720,
"clipDurations": [
[
123
]
]
}
}
],
"currentPage": 123,
"totalPages": 123,
"totalPresets": 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 caption presets available in your studio. Presets define the styling, animation, and visual presentation of captions that can be applied to your video projects. Results are ordered with your own presets first (most recently edited first), followed by the built-in system presets. The ordering is stable across pages.Response
array
Array of preset objects
Show Preset Object
Show Preset Object
string
Unique identifier for the preset
string
Display name of the preset
string
Source type of the preset (“system” or “user”)
object
Preset preferences and configuration
Show Preferences Object
Show Preferences Object
boolean
Whether to add an audiogram visualization
boolean
Whether captions are enabled by default
string
Default video genre (“talking”, “screenshare”, “gaming”)
string
Default transcription language code
string
Default translation target language
string
Script format (“native” or “roman”)
string
Default video orientation (“portrait”, “landscape”, “square”)
integer
Default export resolution (720, 1080, 1440, 2160)
array
Default clip duration ranges
integer
Current page number
integer
Total number of pages available
integer
Total number of presets in your studio
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/get-all-presets?page=1&pageSize=20" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
const response = await fetch('https://public.reap.video/api/v1/automation/get-all-presets?page=1&pageSize=20', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data.presets);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
response = requests.get(
'https://public.reap.video/api/v1/automation/get-all-presets',
headers=headers,
params={'page': 1, 'pageSize': 20}
)
data = response.json()
print(data['presets'])
Example Response
Rate Limiting
This endpoint is subject to the standard rate limit of 10 requests per minute.Preset Types
Caption presets control various aspects of subtitle presentation:- Typography: Font family, size, weight, and color
- Positioning: Caption placement and alignment on screen
- Animation: Text entrance and exit effects
- Background: Caption background styling and transparency
- Highlighting: Keyword emphasis and emoji integration
Common Use Cases
Custom Caption Styles
Choose from your own caption styles when creating video projects
Preset Validation
Validate preset IDs before creating video projects
Brand Consistency
Maintain consistent caption styling across all your video content
Style Previews
Display caption style previews to help users choose the right visual presentation
Error Responses
error
Unauthorized - Invalid or missing API key
error
Too Many Requests - Rate limit exceeded
error
Internal Server Error - Something went wrong on our end
Next Steps
Once you have your presets, you can use them when creating video projects:- Create Clips - Use presets in clipping projects
- Create Captions - Apply caption styles to your videos
- Create Transcription - Generate transcriptions from videos
- Create Reframe - Apply captions to reframed videos
- Create Dubbing - Add styled captions to dubbed content
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Page number for pagination
Number of presets per page (max 100)
Was this page helpful?