RaylightAPI

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/renders

API key with the renders scope.

Request body

multipart/form-data

FieldTypeDescription
resolutionenumOne of: 480p, 720p, 1080p, 4KDefault 1080p
backgroundenumOne of: black, whiteDefault black
appNamestring
accentstring
waitenumOne of: true, falseDefault true
imagesrequiredfile[]

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

FieldTypeDescription
renderrequiredobject
render.idrequireduuid
render.statusrequiredenumOne of: queued, rendering, done, failed
render.progressrequirednumber
render.projectIdrequireduuid | null
render.resolutionrequiredenumOne of: 480p, 720p, 1080p, 4K
render.errorrequiredstring | null
render.videoUrlurl

202 response body

FieldTypeDescription
renderrequiredobject
render.idrequireduuid
render.statusrequiredenumOne of: queued, rendering, done, failed
render.progressrequirednumber
render.projectIdrequireduuid | null
render.resolutionrequiredenumOne of: 480p, 720p, 1080p, 4K
render.errorrequiredstring | null
render.videoUrlurl

Example

curl
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"