Skip to main content

1. Get your API key

Humans: sign up at console.framelane.io and copy your API key from Settings → API Keys. Agents (no human, no browser): provision a key over the API. POST /v1/signup returns a key immediately and emails a 6-digit code; read it from the inbox you signed up with, then confirm it with POST /v1/signup/verify to activate the key. Until you verify, the key returns 403 email_not_verified on every call. See Self-provisioning for agents.

2. Upload your input file

If your video is already hosted at a public HTTPS URL you control, skip to step 3 and use that URL as source_url. To pull in a file from a remote URL you don’t control (another CDN, a cloud share link), set ingest_external: true on the render and pass the URL as the element source_url — Framelane copies it into your workspace first. For a local file, request an upload slot and PUT the bytes to GCS:
You will use source_url from the upload response in the render request. See Uploading media for supported MIME types and error codes.

3. Submit a render

Send a POST /v1/renders request with your composition. Replace source_url with your upload URL or any public HTTPS URL:
The API returns 202 Accepted immediately with a job object:
Save the id — you need it to poll status or download the result.

4. Wait for completion

Option A — Poll job status (simplest for scripts)

Call GET /v1/renders/{id} until status is terminal (completed, failed, or cancelled):
While processing, status is queued or processing and progress_percent updates over time. When status is completed, the response includes output.url:
output.url is the field to use — download the finished video from it. The width, height, duration, and size_bytes fields are reserved and currently return null; the output dimensions and duration match your render request, and the byte size is available from the download response’s Content-Length.
Poll every few seconds in a loop, or use the SDK helper:
The same polling pattern applies to tasks via GET /v1/tasks/{id}. Register a webhook endpoint and Framelane calls it when the render completes:
When complete, you’ll receive:

5. Download the artifact

The output.url in the job response or webhook is a signed CDN URL. You can also request a fresh download redirect:

Next steps

Uploading media

Local files via signed GCS upload, or remote URLs with ingest_external.

Run an AI task

Transcribe audio, remove backgrounds, or upscale video.

Verify webhook signatures

Validate HMAC signatures to ensure payloads come from Framelane.

API Reference

Browse all endpoints generated from the OpenAPI spec.