CueFrame
Validate a composition body without saving it (dry-run)
- Category
- Images, audio & video
- Starting price
- $0.01
- Paid calls · 30 days
- 28
- Unique payers · 30 days
- 19
Paid endpoints
14 endpoints, sorted by usage. Prices are per request.
- POST/v1/composition/validate
Validate a composition body without saving it (dry-run)
$0.01Base6calls / 30d - GET/v1/projects/:id/renders/:renderId
Check a render job's status and progress, and get its video output URL once complete, or the error and error code if it failed. Poll it after starting a render to know when the video is ready to download.
$0.01Base4calls / 30d - POST/v1/projects
Create a video project — the container for a composition (the editable timeline), its media, brand kit, and renders. Every other authoring call (import or generate media, apply composition ops, compose, render, export) takes this project's id. Set the output format here (aspectRatio, fps, resolution).
$0.01Base3calls / 30d - GET/v1/media/:id/processing-runs/:runId
Check a hosted processing run's overall status, dispatch state, and each operation's attempt and artifact commit. Poll it after starting a run to learn when its artifacts can be downloaded.
$0.01Base2calls / 30d - POST/v1/projects/:id/composition/apply
Atomically applies an array of CompositionOps. All ops succeed or none do (transactional). A write must carry `if_match`, the composition ETag it observed (409 stale_etag on mismatch), or the stronger `concurrency` admission; with neither it is refused with 428 precondition_required. Pass `dry_run: true` to validate the batch — runs the same apply + projection accept/reject guards WITHOUT persisti
$0.01Base2calls / 30d - POST/v1/projects/:id/compositions
Add an empty composition to a project, for a second video or another format in the same project. Returns its id and ETag for the first edit; format defaults to the project's, and a project's first composition becomes the active one.
$0.01Base2calls / 30d - POST/v1/projects/:id/renders
Render the project's composition to a finished MP4. Async: returns a render id; poll GET /projects/:id/renders/:renderId or stream progress over SSE, then download the signed output URL once status is complete.
$0.50Base2calls / 30d - POST/v1/media/:id/processing-runs
Process a stored media source under a caller-chosen runId, optionally setting a transcription language. Async: returns 202 with dispatch state, then poll GET /v1/media/{id}/processing-runs/{runId}; one run can be active per media item.
$0.10Base1calls / 30d - POST/v1/media/:id/processing-runs/:runId/cancel
Ask a hosted processing run to stop, and get back its status plus whether a remote stop was requested. A request is not proof the work stopped, so poll the run afterward; a finished run is returned unchanged.
$0.01Base1calls / 30d - GET/v1/webhooks
List webhook endpoints
$0.01Base1calls / 30d - POST/v1/media
Reserve a media id and get a presigned URL for uploading a local video, audio, or image file of up to 5 GiB. PUT the raw bytes to that URL, then call POST /v1/media/{id}/finalize to start processing.
$0.01Base1calls / 30d - POST/v1/media/:id/finalize
Confirm the bytes reached the presigned URL and start processing, the step after POST /v1/media. Audio and video move to processing while images complete at once; optionally declare an audio role of vo, music, sfx, or ambience.
$0.01Base1calls / 30d - GET/v1/media/:id
Read one media item's status, processing progress, duration, dimensions, frame rate, and thumbnail URL. Poll it after an upload, import, or generation to learn when the video, audio, or image is ready to use.
$0.01Base1calls / 30d - POST/v1/projects/:id/renders/:renderId/cancel
Stop a queued or running render job and get back its updated state. Call it when a render is no longer wanted; a render that already finished is refused, and a 503 means the cancel did not reach the worker, so retry.
$0.01Base1calls / 30d