Merge Videos
Combine 2-50 video URLs into a single MP4 with optional crossfade or fade transitions. 1 credit per merge.
New: Combine multiple video clips into a single MP4 with a single API call. Supports hard cuts, crossfade, and fade-to-black transitions. All inputs are automatically normalized to the target resolution.
Pricing
| Operation | Credits | Price (Pro Yearly) | Price (Pro Monthly) |
|---|---|---|---|
| Merge (any transition) | 1 | $0.006 | $0.012 |
Credits are deducted upfront. Refunded automatically if the merge fails.
Endpoint
POST https://vicsee.com/api/v1/tools/merge-videosSee Authentication for API key setup.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| videos | array | Yes | Array of video objects (2-50). Each object has url (string, required) and optional trim object with start/end (numbers, seconds). |
| transition | string | No | "none" (default) = hard cut. "crossfade" = smooth blend. "fade" = fade through black. |
| transition_duration | number | No | Transition duration in seconds (0.1-5.0). Default: 0.5. Only used when transition is not "none". |
| resolution | string | No | Output resolution as WIDTHxHEIGHT. Default: "1080x1920". All inputs are scaled and padded to fit. |
Example Request
curl -X POST https://vicsee.com/api/v1/tools/merge-videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{ "url": "https://example.com/scene1.mp4" },
{ "url": "https://example.com/scene2.mp4" },
{ "url": "https://example.com/scene3.mp4" }
],
"transition": "crossfade",
"transition_duration": 0.5
}'Response
{
"success": true,
"data": {
"id": "task_abc123",
"model": "merge-videos",
"status": "completed",
"output": {
"url": "https://assets.vicsee.com/vicsee/dew/2026-02-28-xyz/merge.mp4",
"duration": 15.5,
"videoCount": 3
},
"creditsUsed": 1,
"creditsRemaining": 499,
"createdAt": "2026-02-28T12:00:00.000Z"
}
}The response returns immediately with the merged video URL — no polling needed. The duration field contains the output video duration in seconds.
Trim Example
Trim each clip before merging — useful when you only need a segment of each video:
curl -X POST https://vicsee.com/api/v1/tools/merge-videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{ "url": "https://example.com/intro.mp4", "trim": { "end": 3.0 } },
{ "url": "https://example.com/main.mp4", "trim": { "start": 2.0, "end": 10.0 } },
{ "url": "https://example.com/outro.mp4", "trim": { "start": 1.0 } }
]
}'Transitions
None (default): Hard cut between clips. Fastest processing — no re-encoding overlap between clips.
Crossfade: Smooth blend where the outgoing clip fades out while the incoming clip fades in simultaneously. Best for scenes that flow together.
Fade: Fade through black — the outgoing clip fades to black, then the incoming clip fades in from black. Best for distinct scene changes.
Limits
| Constraint | Value |
|---|---|
| Minimum videos | 2 |
| Maximum videos | 50 |
| Supported formats | MP4, MOV, WebM |
| Transition duration | 0.1-5.0 seconds |
| Resolution | Any (default: 1080x1920) |
Errors
| Code | HTTP | Description |
|---|---|---|
MISSING_VIDEOS | 400 | videos array not provided |
TOO_FEW_VIDEOS | 400 | Less than 2 videos |
TOO_MANY_VIDEOS | 400 | More than 50 videos |
INVALID_VIDEO_URL | 400 | Video URL missing or invalid |
INVALID_TRANSITION | 400 | Transition not "none", "crossfade", or "fade" |
INVALID_TRANSITION_DURATION | 400 | Duration not between 0.1 and 5.0 |
INSUFFICIENT_CREDITS | 402 | Not enough credits |
MERGE_FAILED | 500 | FFmpeg merge failed |
Related
- Merge Audio + Video — Combine a video with a separate audio track
- Tasks API — Check task history
- Credits API — Check your credit balance
Merge Audio + Video
Merge a video URL with an audio URL into a single MP4. Replace original audio or mix new audio on top of existing. 1 credit per merge.
Image Upscale
Premium AI image upscaling with Topaz through VicSee API. Upscale images up to 4x with automatic dimension detection and output validation. 20–80 credits per image, tiered by output size.