Renders
GET /v1/renders/:renderId
Section titled “GET /v1/renders/:renderId”Read the current state of a full-quality render. The render_id you got from
POST /v1/clips/:clipId/renders
is the same value as the underlying clip id — pass it here.
Auth: Bearer JWT or API key
Path parameters
Section titled “Path parameters”| Param | Type | Description |
|---|---|---|
renderId | string | The clip id returned as render_id |
Response · 200 OK
Section titled “Response · 200 OK”While rendering:
{ "render_id": "9d8e7f6a-...", "status": "processing", "progress": 0.42}When done:
{ "render_id": "9d8e7f6a-...", "status": "done", "output_url": "https://choppity-assets-dev.s3.amazonaws.com/render/..."}| Field | Type | Description |
|---|---|---|
status | string | queued · processing · done · error |
progress | number | 0–1, present only during processing |
output_url | string | One-hour signed MP4 URL, present only when status === "done" |
error | string | Present only when status === "error" |
Output URL TTL
Section titled “Output URL TTL”output_url is a one-hour signed S3 URL. Re-poll the endpoint to get a fresh
URL; the underlying object stays at render/{renderId}.mp4 indefinitely
(unless the clip is deleted from the dashboard or via the legacy delete
endpoint).
Polling cadence
Section titled “Polling cadence”Full renders take roughly 15–60 seconds for a 60-second clip. Polling every
3–5 seconds is reasonable. For longer-running renders, register a webhook
for project.render.succeeded instead — see Webhooks → Overview.
Errors
Section titled “Errors”| Code | HTTP | When |
|---|---|---|
UNAUTHORIZED | 401 | Missing or invalid credential |
NOT_FOUND | 404 | renderId doesn’t exist on your team |