Skip to main content

Installation

Quick start

Upload local media with client.uploads.uploadFile(...) first, then pass the returned source_url below. It picks its route by size: files up to 256 KB go inline in one request (the only route available when outbound access to storage.googleapis.com is blocked), larger ones go straight to storage in resumable chunks, each retried on its own, so a dropped connection costs one chunk rather than the file. See Uploading media.

API coverage

Iterate every item across all pages with autoPaginate:

Webhook signature verification

TypeScript types

All request and response types are fully typed and exported:
renders.create and projects.render return a RenderSubmission — a RenderJob plus an advisory ok / violations lint of the composition. It never blocks the render (the render is already queued); gate on the free previews.create({ renderRequest, dryRun: true }) dry run instead. Job reads (get, list, cancel) return a plain RenderJob.