List Projects
curl --request GET \
--url https://api.example.com/api/v1/projects \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/v1/projects"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/v1/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://api.example.com/api/v1/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: <authorization>"
],
]);
$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.example.com/api/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.example.com/api/v1/projects")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"projects": [
{}
],
"pagination": {}
}Projects
List Projects
Retrieve a paginated list of all your video projects
GET
/
api
/
v1
/
projects
List Projects
curl --request GET \
--url https://api.example.com/api/v1/projects \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/api/v1/projects"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/api/v1/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://api.example.com/api/v1/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: <authorization>"
],
]);
$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.example.com/api/v1/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.example.com/api/v1/projects")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"projects": [
{}
],
"pagination": {}
}Overview
Get a list of all video projects for the authenticated user. Supports pagination.Request
Headers
string
required
Bearer token with your API key
Query Parameters
number
default:"20"
Number of projects to return (max: 100)
number
default:"0"
Number of projects to skip for pagination
Response
array
Array of project objects
object
Pagination metadata with
limit, offset, and totalExamples
curl https://api.babou.ai/api/v1/projects \
-H "Authorization: Bearer $BABOU_API_KEY"
# With pagination
curl "https://api.babou.ai/api/v1/projects?limit=50&offset=100" \
-H "Authorization: Bearer $BABOU_API_KEY"
async function listProjects(limit = 20, offset = 0) {
const params = new URLSearchParams({
limit: limit.toString(),
offset: offset.toString()
});
const response = await fetch(
`https://api.babou.ai/api/v1/projects?${params}`,
{
headers: {
'Authorization': `Bearer ${process.env.BABOU_API_KEY}`
}
}
);
return await response.json();
}
const result = await listProjects();
console.log(`Found ${result.pagination.total} projects`);
result.projects.forEach(p => console.log(`- ${p.name}`));
import os
import requests
def list_projects(limit=20, offset=0):
response = requests.get(
'https://api.babou.ai/api/v1/projects',
headers={'Authorization': f'Bearer {os.environ["BABOU_API_KEY"]}'},
params={'limit': limit, 'offset': offset}
)
return response.json()
result = list_projects()
print(f'Found {result["pagination"]["total"]} projects')
for project in result['projects']:
print(f'- {project["name"]}')
Response Example
{
"projects": [
{
"id": "prj_abc123xyz",
"name": "Product Launch Video",
"description": "Marketing video for Q4 2025",
"settings": null,
"active_export_id": "exp_xyz789abc",
"created_at": "2025-12-02T10:00:00Z"
},
{
"id": "prj_def456uvw",
"name": "Tutorial Series",
"description": "Educational content",
"settings": null,
"active_export_id": null,
"created_at": "2025-12-01T15:30:00Z"
}
],
"pagination": {
"limit": 20,
"offset": 0,
"total": 42
}
}
Next Steps
Create Project
Create a new project
Get Project
Get project details
⌘I