Netwrck AI Agents > API Docs > Video Editor Render
Video Editor Render API
Queue server-side renders from a timeline project. Clips must use public URLs. Optional audio tracks are supported; crossfade transitions are supported.
Pricing: 1 credit per second of output (rounded up). cost_usd reflects $0.01 per second.
Endpoint
POST https://netwrck.com/api/video-editor/render
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| api_key | string | yes | User API key or secret |
| project | object | yes | Serialized project data (resolution, fps, clips) |
| project.clips | array | yes | List of clip objects with src, type, duration |
| project.clips[].audioGain | number | no | Clip audio gain multiplier (default 1.0) |
| project.clips[].audioGainEnd | number | no | End gain for linear automation (defaults to audioGain) |
| project.clips[].audioPan | number | no | Clip audio pan/balance (-1 left, 1 right, default 0) |
| project.clips[].audioPanEnd | number | no | End pan for linear automation (defaults to audioPan) |
| project.clips[].audioGainKeyframes | array | no | Gain keyframes with time, value, and optional ease (linear, ease-in, ease-out, ease-in-out) |
| project.clips[].audioPanKeyframes | array | no | Pan keyframes with time, value, and optional ease (linear, ease-in, ease-out, ease-in-out) |
| project.clips[].audioMute | boolean | no | Mute clip audio (default false) |
| project.clips[].audioSolo | boolean | no | Solo clip audio (mutes other clips when any solo is true) |
| project.clips[].audioFadeIn | number | no | Clip audio fade in seconds (default 0) |
| project.clips[].audioFadeOut | number | no | Clip audio fade out seconds (default 0) |
| project.audio | object | no | Optional audio track with public src URL |
| project.audio.gain | number | no | Audio gain multiplier (default 1.0) |
| project.audio.fadeIn | number | no | Fade in seconds (default 0) |
| project.audio.fadeOut | number | no | Fade out seconds (default 0) |
| format | string | no | Output format. Only mp4 supported |
| publish | boolean | no | Store the render in the gallery |
Examples
curl -X POST https://netwrck.com/api/video-editor/render \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"format": "mp4",
"publish": false,
"project": {
"fps": 30,
"resolution": {"width": 1920, "height": 1080},
"audio": {"src": "https://netwrckstatic.netwrck.com/static/uploads/sample-audio.mp3", "gain": 1.0, "fadeIn": 0.5, "fadeOut": 0.5},
"clips": [
{"src": "https://netwrckstatic.netwrck.com/static/uploads/sample.mp4", "type": "video", "duration": 4, "audioGain": 0.8, "audioGainEnd": 1.1, "audioPan": -0.2, "audioPanEnd": 0.2, "audioGainKeyframes": [{"time": 0, "value": 0.8, "ease": "ease-in"}, {"time": 2, "value": 1.1, "ease": "ease-out"}], "audioPanKeyframes": [{"time": 0, "value": -0.2}, {"time": 2, "value": 0.2}], "audioMute": false, "audioSolo": false, "audioFadeIn": 0.2, "audioFadeOut": 0.2}
]
}
}'
{
"job_id": "job_xxx",
"status": "in_progress",
"status_url": "/api/video-editor/render/status/job_xxx",
"credits_charged": 4,
"cost_usd": 0.04
}
Status
GET https://netwrck.com/api/video-editor/render/status/<job_id>?api_key=YOUR_API_KEY
{
"job_id": "job_xxx",
"status": "completed",
"progress": 100,
"credits_charged": 4,
"cost_usd": 0.04,
"result": {
"video_url": "https://netwrckstatic.netwrck.com/static/uploads/video-editor-job_xxx.mp4",
"thumbnail_url": "https://netwrckstatic.netwrck.com/static/uploads/video-editor-thumb-job_xxx.webp",
"duration_seconds": 4,
"width": 1920,
"height": 1080,
"format": "mp4",
"published": false
}
}
Cancel
POST https://netwrck.com/api/video-editor/render/cancel/<job_id>?api_key=YOUR_API_KEY
{
"job_id": "job_xxx",
"status": "cancelled",
"credits_refunded": 4
}
Netwrck