Skip to main content
The Babou REST API lets you create, manage, and export video projects programmatically. No rendering expertise required - just straightforward REST calls.

Base URL

All API requests should be made to:
https://api.babou.ai/api/v1

Authentication

Every API request must include your API key in the Authorization header:
Authorization: Bearer sk-bab-your-api-key-here
See the Authentication guide for detailed information.

API Structure

The Babou API is organized around creating and managing video projects:
1

Projects

Create a project container for your video
2

Chapters

Add one or more chapters to organize your video content
3

Prompts

Submit text prompts to create video content for each chapter
4

Exports

Export your complete project as a downloadable video file

Core Concepts

Projects

A project is the top-level container for a video. It holds metadata like name and description, and contains one or more chapters.
{
  "id": "prj_abc123xyz",
  "name": "My Marketing Video",
  "description": "Q4 2025 product launch",
  "created_at": "2025-12-02T10:00:00Z"
}

Chapters

A chapter is a segment of your video. Each chapter can have its own content, duration, and video prompt. Chapters are rendered sequentially to create the final video.
{
  "id": "cht_def456uvw",
  "project_id": "prj_abc123xyz",
  "name": "Introduction",
  "duration": 30,
  "created_at": "2025-12-02T10:01:00Z"
}

Prompts

A prompt is a text description submitted to create video content for a chapter. Babou’s AI processes the prompt and creates video content automatically.
{
  "prompt_id": "int_abc123xyz789",
  "status": "processing",
  "message": "Prompt processing started",
  "estimated_time": "30-90 seconds"
}

Assets

Assets are media files (videos, images, audio) you upload to use in your projects. Upload assets separately, then reference them in your prompts.
{
  "id": "ast_abc123xyz456789012",
  "url": "https://babou-assets.s3.amazonaws.com/assets/...",
  "content_type": "image/png",
  "state": "ready"
}

API Endpoints

Assets

Upload Asset

POST /api/v1/assets

Get Asset

GET /api/v1/assets/{assetId}

List Assets

GET /api/v1/assets

Projects

Create Project

POST /api/v1/projects

List Projects

GET /api/v1/projects

Get Project

GET /api/v1/projects/{projectId}

Chapters

Create Chapter

POST /api/v1/projects/{projectId}/chapters

List Chapters

GET /api/v1/projects/{projectId}/chapters

Get Chapter

GET /api/v1/projects/{projectId}/chapters/{chapterId}

Prompts

Submit Prompt

POST /api/v1/projects/{projectId}/chapters/{chapterId}/prompt

Exports

Start Export

POST /api/v1/projects/{projectId}/export

Get Export Status

GET /api/v1/projects/{projectId}/export

Rate Limiting

The Babou API implements rate limiting to ensure fair usage and system stability. Rate limits are applied per API key.
If you exceed rate limits, you’ll receive a 429 Too Many Requests response. Implement exponential backoff in your retry logic.

Request Format

All POST and PUT requests should send JSON in the request body with the Content-Type: application/json header (except for asset uploads, which send binary data).
curl -X POST https://api.babou.ai/api/v1/projects \
  -H "Authorization: Bearer $BABOU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Project"}'

Response Format

All API responses are JSON. Successful responses return the relevant data:
{
  "id": "prj_abc123xyz",
  "name": "My Project",
  "created_at": "2025-12-02T10:00:00Z"
}
Error responses include an error message and a code:
{
  "error": "Project not found",
  "code": "NOT_FOUND"
}
See the Error Reference for complete error documentation.

ID Formats

Babou uses predictable ID prefixes to make debugging easier:
  • Projects: prj_[A-Za-z0-9]{21} (e.g., prj_abc123xyz)
  • Chapters: cht_[A-Za-z0-9]{21} (e.g., cht_def456uvw)
  • Prompts/Interactions: int_[A-Za-z0-9]{21} (e.g., int_abc123xyz789)
  • Exports: exp_[A-Za-z0-9]{21} (e.g., exp_xyz789abc123)
  • Assets: ast_[A-Za-z0-9]{21} (e.g., ast_abc123xyz456)

Timestamps

All timestamps are in ISO 8601 format with UTC timezone:
2025-12-02T10:00:00Z

Pagination

List endpoints support pagination via limit and offset parameters:
GET /api/v1/projects?limit=20&offset=40
Response includes pagination metadata:
{
  "projects": [...],
  "pagination": {
    "limit": 20,
    "offset": 40,
    "total": 150
  }
}

Next Steps

Quickstart

Create your first video in 5 minutes

Authentication

Learn how to authenticate requests

Error Reference

Understand error codes and responses

Video Creation Guide

Deep dive into creating videos