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 8x with automatic dimension detection and output validation. 20–80 credits per image.