Skip to main content
POST
Validate or preview a composition

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
render_request
RenderRequest · object
required

The composition to preview.

at
number | null

Timeline seconds for a single-frame preview. Mutually exclusive with 'window' and 'contact_sheet'.

Required range: x >= 0
window
PreviewWindow · object | null

Time range for a short clip preview (with audio), or the range a contact_sheet spans.

contact_sheet
ContactSheetOptions · object | null

Produce a contact sheet (grid of composition-aware frames) instead of a single frame or clip.

width
integer | null

Preview width in px; height derives from the aspect ratio. Defaults to a small draft width.

Required range: 16 <= x <= 3840
dry_run
boolean
default:false

Validate only: run the linter and return violations, no render.

target_duration_sec
number | null

Optional target timeline length; emits TARGET_DURATION_MISSED when outside tolerance.

Required range: x > 0
target_tolerance_sec
number
default:0.5
Required range: x >= 0

Response

Validation result (dry-run).

kind
string
required

'validation' (dry-run), 'frame', 'window', or 'contact_sheet'.

ok
boolean
required

True when there are no error-severity violations.

violations
Violation · object[]
job
JobOut · object | null

For a pixel preview: the preview render job to poll via GET /v1/renders/{id} (is_preview=true, not billed). Absent for a dry-run.

sheet
ContactSheetPlan · object | null

For a contact_sheet: the sampling plan (cells + grid shape). Present even on a dry-run.