Get All Posts
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-posts"
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-posts', 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-posts",
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-posts"
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-posts")
.header("Authorization", "Bearer <token>")
.asString();{
"posts": [
{
"id": "<string>",
"projectId": "<string>",
"clipId": "<string>",
"platforms": [
"<string>"
],
"successPlatforms": [
"<string>"
],
"failedPlatforms": [
"<string>"
],
"integrations": [
"<string>"
],
"title": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"scheduleDate": 123,
"publishDate": 123,
"urls": {},
"platformSettings": {
"youtube": {
"privacy": "public",
"embeddable": true,
"publicStats": true,
"madeForKids": false
},
"tiktok": {
"privacy": "public",
"disableComments": false,
"disableDuet": false,
"disableStitch": false,
"brandContent": false,
"brandOrganic": false
},
"instagram": {
"shareToFeed": false
},
"linkedin": {
"privacy": "public"
}
},
"createdAt": 123,
"updatedAt": 123
}
],
"currentPage": 123,
"totalPages": 123,
"totalPosts": 123
}Publishing
Get All Posts
List publisher posts with pagination and filtering
GET
/
automation
/
get-all-posts
Get All Posts
curl --request GET \
--url https://public.reap.video/api/v1/automation/get-all-posts \
--header 'Authorization: Bearer <token>'import requests
url = "https://public.reap.video/api/v1/automation/get-all-posts"
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-posts', 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-posts",
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-posts"
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-posts")
.header("Authorization", "Bearer <token>")
.asString();{
"posts": [
{
"id": "<string>",
"projectId": "<string>",
"clipId": "<string>",
"platforms": [
"<string>"
],
"successPlatforms": [
"<string>"
],
"failedPlatforms": [
"<string>"
],
"integrations": [
"<string>"
],
"title": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"scheduleDate": 123,
"publishDate": 123,
"urls": {},
"platformSettings": {
"youtube": {
"privacy": "public",
"embeddable": true,
"publicStats": true,
"madeForKids": false
},
"tiktok": {
"privacy": "public",
"disableComments": false,
"disableDuet": false,
"disableStitch": false,
"brandContent": false,
"brandOrganic": false
},
"instagram": {
"shareToFeed": false
},
"linkedin": {
"privacy": "public"
}
},
"createdAt": 123,
"updatedAt": 123
}
],
"currentPage": 123,
"totalPages": 123,
"totalPosts": 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
Retrieve a paginated list of all publisher posts. Filter by status or date range to find specific posts.Rate Limiting
This endpoint is rate limited to 10 requests per minute per API key.Response
Array of post objects
Show AutomationPost Object
Show AutomationPost Object
Unique post identifier
ID of the parent project
ID of the published clip
Array of target platform names
Platforms where publishing succeeded
Platforms where publishing failed
Array of integration IDs used for publishing
Post title
Post description
Array of tags applied to the post
Current post status
processing- Post is being publisheddraft- Post is saved as draftcompleted- Published successfullyfailed- Publishing failedcancelled- Post was cancelledunresolved- Partial success (some platforms failed)
Type of scheduling (
immediate or scheduled)Scheduled publish date as Unix timestamp (null for immediate)
Actual publish date as Unix timestamp
Published URLs per platform
Per-platform configuration
Show Platform Settings
Show Platform Settings
YouTube-specific settings
TikTok-specific settings
Show TikTok Settings
Show TikTok Settings
Video privacy:
public, friends, or privateDisable comments on the video
Disable duets for the video
Disable stitches for the video
Mark as paid partnership / brand content
Mark as organic brand content
Instagram-specific settings
Show Instagram Settings
Show Instagram Settings
Whether to share Reels to the main feed
Unix timestamp when the post was created
Unix timestamp when the post was last updated
Current page number
Total number of pages
Total number of posts matching the filters
Example Request
curl -X GET "https://public.reap.video/api/v1/automation/get-all-posts?page=1&pageSize=10&status=completed" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
const params = new URLSearchParams({
page: '1',
pageSize: '10',
status: 'completed'
});
const response = await fetch(`https://public.reap.video/api/v1/automation/get-all-posts?${params}`, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(`Found ${data.totalPosts} posts (page ${data.currentPage}/${data.totalPages})`);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
params = {
'page': 1,
'pageSize': 10,
'status': 'completed'
}
response = requests.get(
'https://public.reap.video/api/v1/automation/get-all-posts',
headers=headers,
params=params
)
data = response.json()
print(f"Found {data['totalPosts']} posts (page {data['currentPage']}/{data['totalPages']})")
<?php
$query = http_build_query([
'page' => 1,
'pageSize' => 10,
'status' => 'completed'
]);
$ch = curl_init('https://public.reap.video/api/v1/automation/get-all-posts?' . $query);
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['totalPosts'] . ' posts' . "\n";
?>
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type PostsResponse struct {
TotalPosts int `json:"totalPosts"`
CurrentPage int `json:"currentPage"`
TotalPages int `json:"totalPages"`
}
func main() {
url := "https://public.reap.video/api/v1/automation/get-all-posts?page=1&pageSize=10&status=completed"
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 result PostsResponse
json.Unmarshal(body, &result)
fmt.Printf("Found %d posts (page %d/%d)\n", result.TotalPosts, result.CurrentPage, result.TotalPages)
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetAllPostsExample {
public static void main(String[] args) throws Exception {
URL url = new URL("https://public.reap.video/api/v1/automation/get-all-posts?page=1&pageSize=10&status=completed");
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
Page number for pagination
Number of posts per page (max 100)
Filter by post status
Available options:
processing, draft, completed, failed, cancelled, unresolved Filter posts after this Unix timestamp
Filter posts before this Unix timestamp
Was this page helpful?
⌘I