Renders
Render images into a video
Multipart: 1 to 10 image files as repeated images fields plus optional form fields. With wait=true (default) the request holds until the video is ready (about 1 to 3 minutes) and answers 200; past the wait budget it answers 202 while the render continues. Needs the renders scope.
POST
/v1/rendersAPI key with the renders scope.
Request body
multipart/form-data
| Field | Type | Description |
|---|---|---|
resolution | enum | One of: 480p, 720p, 1080p, 4KDefault 1080p |
background | enum | One of: black, whiteDefault black |
appName | string | |
accent | string | |
wait | enum | One of: true, falseDefault true |
imagesrequired | file[] |
Responses
200The finished render with a signed video URL.
202Still rendering; poll it.
400Invalid request.
401Missing, invalid or revoked key.
403The key lacks the scope, or the key's owner has view-only access to the workspace (code
forbidden).404Not found.
429Rate limited, or a monthly cap reached.
200 response body
| Field | Type | Description |
|---|---|---|
renderrequired | object | |
render.idrequired | uuid | |
render.statusrequired | enum | One of: queued, rendering, done, failed |
render.progressrequired | number | |
render.projectIdrequired | uuid | null | |
render.resolutionrequired | enum | One of: 480p, 720p, 1080p, 4K |
render.errorrequired | string | null | |
render.videoUrl | url |
202 response body
| Field | Type | Description |
|---|---|---|
renderrequired | object | |
render.idrequired | uuid | |
render.statusrequired | enum | One of: queued, rendering, done, failed |
render.progressrequired | number | |
render.projectIdrequired | uuid | null | |
render.resolutionrequired | enum | One of: 480p, 720p, 1080p, 4K |
render.errorrequired | string | null | |
render.videoUrl | url |
Example
curl -X POST https://api.raylight.app/v1/renders \ -H "Authorization: Bearer $RAYLIGHT_API_KEY" \ -F "images=@screenshots/home.png" \ -F "images=@screenshots/editor.png" \ -F "appName=Acme" \ -F "resolution=1080p"