| Method | Path | Body |
|---|---|---|
| POST | /v2/video |
multipart — video_file |
| POST | /v2/video/estimate-credits |
JSON |
| POST | /v2/video/crop-to-aspect-ratio |
JSON — video_url, aspect_ratio |
| POST | /v2/video/reframe |
JSON — Luma reframe |
| POST | /v2/video/enhance |
JSON — upscale / deep clean |
| POST | /v2/video/sound-effect |
JSON — AI sound on video |
| POST | /v2/video/avatars/lip-sync |
JSON — Creatify avatar |
| POST | /v2/video/lip-sync |
JSON — image or video + audio or TTS |
| POST | /v2/video/video-effects |
JSON — image_url, effect |
| POST | /v2/video/replace-background |
JSON — composite over bg |
| POST | /v2/video/reference-to-video |
JSON — image_urls, prompt |
| POST | /v2/video/video-to-video |
JSON — modify video |
| POST | /v2/video/audio |
JSON — mux audio onto video |
video_url, image_url, audio_url, …).Content-Type: application/json.results on the response asset. For long jobs set async_mode: true and poll until status is success.data wrapperresults; poll by asset id when async_mode is trueX-Api-Key: YOUR_API_KEY on every request.
Legacy form-data routes (with data wrapper on some responses) remain at /image/*, /video/*, /audio/*, and /text/* (tagged (Legacy) in the schema).
Uploads a video file and returns an asset whose results contain the hosted URL.
Content-Type: multipart/form-data — field video_file only (no JSON body).
import requests
with open("clip.mp4", "rb") as f:
r = requests.post(
"https://api.vimmerse.net/v2/video",
headers={"X-Api-Key": "YOUR_API_KEY"},
files={"video_file": ("clip.mp4", f, "video/mp4")},
timeout=300,
)
r.raise_for_status()
print(r.json()["results"])
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Uploaded Video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Estimates credits for a video route without creating an asset. Same pricing as the matching POST /v2/video/ handler.
Content-Type: application/json
| Field | Required | Notes |
|---|---|---|
app_name |
Yes | e.g. reference-to-video, video-to-video, edit-video |
option |
Yes | Tool/model for that route |
quantity |
No | Default 1 |
duration |
No | Seconds (reference-to-video, etc.) |
prompt |
No | Used when pricing depends on length |
Credit estimate and breakdown
Validation Error
{- "total_credits": 0,
- "breakdown": { }
}Crops video_url to aspect_ratio. Optional offset_x / offset_y set the crop origin (default: center).
Most clients should use async_mode: true (default).
import requests
r = requests.post(
"https://api.vimmerse.net/v2/video/crop-to-aspect-ratio",
headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={"video_url": "https://…/input.mp4", "aspect_ratio": "9:16", "async_mode": True},
timeout=60,
)
print(r.json()["status"], r.json().get("results"))
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Cropped video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}AI reframing (Luma) to a new aspect_ratio using prompt. Optional grid/position fields fine-tune the frame.
import requests
r = requests.post(
"https://api.vimmerse.net/v2/video/reframe",
headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"video_url": "https://…/input.mp4",
"aspect_ratio": "16:9",
"prompt": "Make it realistic",
"async_mode": True,
},
timeout=60,
)
print(r.json())
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Reframed video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Enhances video_url. enhance_mode: 4X, 2X, 4X&DeepClean, 2X&DeepClean, or DeepClean. compression_scale: 0–1 (default 0.5).
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Enhanced video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Adds an AI sound effect to video_url described by prompt.
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Video with sound effect
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Creatify talking-avatar video. Provide avatar_id, voice_id, and prompt. Optional bg_image_url, audio_url, aspect_ratio (1:1, 16:9, 9:16), show_caption (On/Off).
List avatars/voices via internal GET routes (not in public schema).
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Lip sync video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Lip-sync using URLs only.
Provide:
image_url and/or video_urlaudio_url, or prompt + voice for TTSoption: AutoLipSync, SyncLipSync, HummingBird, NewportLipSync, KlingAvatar, PVideo, NewportDreamAvatar
import requests
r = requests.post(
"https://api.vimmerse.net/v2/video/lip-sync",
headers={"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"image_url": "https://…/face.png",
"audio_url": "https://…/speech.mp3",
"option": "AutoLipSync",
"async_mode": True,
},
timeout=60,
)
print(r.json())
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Lip sync video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Motion effect from image_url. Use ref_image_url for two-subject effects (e.g. hug). Set aspect_ratio when the provider supports it.
option: PikaEffects, KlingEffects, WanEffects, ViduEffects, PixverseEffects, HiggsfieldEffects
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Generated video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Composites video_url over bg_image_url and/or bg_video_url. Tune chroma_key_color, overlay_scale, alignment, offsets, etc.
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Composited video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Generates video from image_urls (at least one) and prompt.
option: AutoR, KlingO, HappyHorse, Grok, SeedanceFast, VeoReference, ViduReference, HeygenAgent, PikaScenes, MinimaxReference
duration: seconds (1–30). elements: optional URL groups for element-aware tools.
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Generated video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Modifies video_url from prompt. Optional image_url as reference.
option: KlingO, HappyHorse, Grok, SeedanceFast, LumaModify
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Modified video
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}Attaches audio_url to video_url.
attach_mode: MatchVideo, PadAudio, MatchAudio, SpeedAdjust, Strict
Authorization (string) or Authorization (null) (Authorization) | |
Username (string) or Username (null) (Username) | |
X-Client-Type (string) or X-Client-Type (null) (X-Client-Type) |
Video with audio
Bad Request
Insufficient Credit
Validation Error
{- "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "customer_id": "customer123",
- "primary_user_id": "user-abc-123",
- "status": "success",
- "mime_type": "video/mp4",
- "app_name": "edit-video",
- "quantity": 1,
- "credits": 24,
- "created_at": "2025-05-06T16:35:59.840508+00:00",
- "updated_at": "2025-05-06T16:36:45.102933+00:00",
- "history": [ ]
}