curl --request POST \
--url https://www.genviral.io/api/partner/v1/editor/projects/b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f/render \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'
{
"ok": true,
"code": 202,
"message": "Editor render started",
"data": {
"project_id": "b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f",
"status": "rendering",
"output_url": null,
"credits_charged": 3
}
}
Video Editor
Render Editor Project
Start rendering the current cut of a project to an MP4.
POST
/
api
/
partner
/
v1
/
editor
/
projects
/
{projectId}
/
render
curl --request POST \
--url https://www.genviral.io/api/partner/v1/editor/projects/b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f/render \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'
{
"ok": true,
"code": 202,
"message": "Editor render started",
"data": {
"project_id": "b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f",
"status": "rendering",
"output_url": null,
"credits_charged": 3
}
}
Starts rendering the project’s current cut to an MP4 and returns
202 Accepted right away. Poll
Get Editor Render until status is completed, then use
output_url, or failed.
Credits
Rendering consumes video render credits, charged once per distinct cut:- Rendering a cut for the first time charges credits;
credits_chargedreports the amount. - Rendering the same cut again, without editing it, is free and returns the existing result.
- Editing the project makes a new cut, which charges again when you render it.
- If a render fails, the credits for it are refunded.
Idempotency
Starting a render is safe to repeat. Retrying while the same cut is rendering, or after it has completed, never starts a second render or a second charge.Path Parameters
string (UUID)
required
The project id.
Body Parameters
The body is empty. An empty object{} or no body are both accepted.
Response
string
string
rendering, or completed when this exact cut was already rendered.string | null
The MP4 URL when
status is completed.number
Credits charged by this call;
0 for a cut that was already paid for.curl --request POST \
--url https://www.genviral.io/api/partner/v1/editor/projects/b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f/render \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'
{
"ok": true,
"code": 202,
"message": "Editor render started",
"data": {
"project_id": "b1d4e8f2-3a5c-4d7e-8f90-1a2b3c4d5e6f",
"status": "rendering",
"output_url": null,
"credits_charged": 3
}
}
Error Responses
401- authentication failed (missing/invalid/revoked token)402 insufficient_credits- not enough credits for this render404 project_not_found- the project does not exist in the key scope422 invalid_payload- the body contains unknown fields422 empty_project- the project has nothing to render422 invalid_document- the project could not be read429 rate_limited- render limit reached; waitretry_after_seconds409 render_blocked- the project cannot be rendered in its current state409 render_submission_unknown- the render may or may not have started; poll Get Editor Render before retrying502 render_failed- the render could not be started; any credits are refunded, retry later503 provider_unavailable- the limiter could not answer right now; retry afterretry_after_seconds
