Backend API
This page is a practical route reference, not a formal OpenAPI spec. All routes are prefixed with/api.
Health and status
GET /api/health
Returns server liveness status.
GET /api/me
Returns the currently authenticated user profile.
GET /api/ai/health
Returns AI provider reachability and configuration status.
GET /api/ai/timeline
Returns a timeline of recent AI operations.
Projects and media
GET /api/project
Returns a list of all projects for the current user.
POST /api/project
Creates a new project.
Request Body:
GET /api/project/{project_id}
Returns details for a specific project.
DELETE /api/project/{project_id}
Deletes a project.
POST /api/project/{project_id}/upload
Uploads a new video asset to the project.
Request Body:
POST /api/project/{project_id}/preview/frame
Extracts and publishes a single preview frame from the project timeline at a specific timestamp.
Request Body:
POST /api/project/{project_id}/preview/strip
Extracts a strip of preview frames across a specified range from the project timeline.
Request Body:
Editing operations
POST /api/segment/{segment_id}/split
Splits an existing segment into two new segments at a specified timestamp. The original segment is deactivated.
Request Body:
POST /api/segment/{segment_id}/trim
Trims an existing segment to new start and end timestamps within its original bounds.
Request Body:
DELETE /api/segment/{segment_id}
Soft-deletes a segment by setting its active status to false.
Response:
POST /api/segment/{segment_id}/color-grade
Applies color grade adjustments to a segment and creates a new generated replacement segment.
Request Body:
POST /api/segment/{segment_id}/grade-preview
Renders a graded preview frame for a segment with specified color adjustments.
Request Body:
AI and generation
POST /api/ai/generate
Initiates an AI-powered video generation job.
Request Body:
GET /api/job/{job_id}
Check the status of a generation, entity, or other non-export job and get any variant results.
Response:
POST /api/variant/{variant_id}/accept
Accepts a generated variant, applying it to the project timeline.
GET /api/variant/{variant_id}/score
Retrieves detailed Gemini-based scoring for a variant, comparing it to the original prompt or the original video segment.
Query Parameters:
compare_to:prompt(default) ororiginal. Specifies what the variant should be compared against for scoring.