Skip to content

Rendering

Once you’ve generated content for each layer (script, voiceover, video clips, captions), render the final composed video using the Remotion rendering endpoint. This merges all layers into a single downloadable video file.

1. Generate content for each layer (text, speech, video clips)
2. Trigger a render job → POST /v1/remotion_jobs
3. Poll render status → GET /v1/remotion_jobs?project_id={id}
4. Download the final video from the output URL

Creates a Remotion render job that composes all layers in a cell into a final video.

POST /v1/remotion_jobs?agent_id={agent_id}
FieldTypeRequiredDescription
job.project_idintegerYesThe engine (project) ID.
job.container_idintegerYesThe cell ID to render.
job.container_typestringYes"SpreadsheetCell"
job.inputstringYesJSON string with render configuration.
Terminal window
curl -X POST "https://api.gen.pro/v1/remotion_jobs?agent_id=42" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"job": {
"project_id": 101,
"container_id": 3000,
"container_type": "SpreadsheetCell",
"input": "{}"
}
}'
{
"job_id": 5000
}

Returns render jobs for an engine, newest first. Includes output URLs for completed renders.

GET /v1/remotion_jobs?agent_id={agent_id}&project_id={project_id}
ParameterTypeRequiredDescription
agent_idintegerYesThe agent ID.
project_idintegerYesThe engine (project) ID.
pageintegerNoPage number (20 per page, default 0).
[
{
"created_at": "2026-03-10T12:00:00.000Z",
"status": "completed",
"content_resource_id": 8000,
"url": "https://cdn.gen.pro/outputs/final_video_001.mp4",
"thumbnail_url": "https://cdn.gen.pro/thumbnails/final_video_001.jpg"
},
{
"created_at": "2026-03-10T11:00:00.000Z",
"status": "processing"
}
]
pending → processing → completed | failed
StatusDescription
pendingQueued, waiting for the render pipeline to pick it up.
processingVideo is being rendered.
completedDone. url contains the final video CDN link.
failedRender failed (check logs).
Terminal window
curl "https://api.gen.pro/v1/remotion_jobs?agent_id=42&project_id=101" \
-H "X-API-Key: your-api-key"

The url field on a completed render job is a direct CDN link. No authentication needed — just fetch it:

Terminal window
# Download the final video
curl -o my_video.mp4 "https://cdn.gen.pro/outputs/final_video_001.mp4"
// Or in code
const response = await fetch(renderJob.url);
const blob = await response.blob();

StatusError codeDescription
401unauthorizedInvalid API key.
404project_not_foundEngine not found or agent doesn’t have access.
422validation_errorMissing or invalid render parameters.