Base URL
snake_case field names.
Authentication
Every request must include your API key as a Bearer token:Get an API key
Sign up and generate your first key in under a minute.
Asynchronous jobs
Renders and tasks are long-running. Submitting one returns202 Accepted immediately with a job object — you then wait for completion by polling the job (GET /v1/renders/{id} or GET /v1/tasks/{id}) or by subscribing to webhooks (recommended for production).
Idempotency
POST endpoints that create jobs accept an Idempotency-Key header. Reusing a key returns the original job instead of creating a duplicate; reusing a key with a different body returns 409 Conflict.
Pagination
List endpoints use cursor-based pagination withlimit and cursor query parameters and return a consistent envelope:
next_cursor back as the cursor parameter to fetch the next page. When has_more is false, next_cursor is null.
Errors
Errors return the appropriate HTTP status code and a structured envelope with a machine-readablecode:
SDKs
Official SDKs wrap authentication, polling, and webhook verification:TypeScript SDK
npm install @framelane/sdkPython SDK
pip install framelaneResources
Renders
Compose and render video from a timeline of elements.
Tasks
AI operations — background removal, gaze redirect, super resolution, transcription.
Uploads
Request signed upload slots for local media files.
Webhooks
Subscribe to job lifecycle events with signed, retried delivery.

