Uploads videos to the Vimmerse platform for use in API requests.
After uploading, you'll receive a URL that can be used with the video_url parameter in other video processing endpoints.
Uploaded Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Changes the aspect ratio of a video by cropping or reframing.
video_file or video_url: Input video (required)aspect_ratio: Desired aspect ratio (required)offset_x: Horizontal offset from top-left corner (optional)offset_y: Vertical offset from top-left corner (optional)import requests
url = "https://api.vimmerse.net/video/crop-to-aspect-ratio"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
"aspect_ratio": "9:16", # Vertical format for TikTok, Instagram Stories
"offset_x": 0, # Optional: horizontal crop offset
"offset_y": 0 # Optional: vertical crop offset
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Change Video Aspect Ratio
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Reframes video using AI to reposition and resize content while maintaining quality.
Luma AI's reframing technology intelligently adjusts camera position to fit different aspect ratios without losing important content.
video_file or video_url: Input video (required)aspect_ratio: Target aspect ratio (required)prompt: Optional guidance for reframing behaviorgrid_position_x: X grid position (optional)grid_position_y: Y grid position (optional)x_start, x_end: Horizontal start/end positions (optional)y_start, y_end: Vertical start/end positions (optional)import requests
url = "https://api.vimmerse.net/video/reframe"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
"aspect_ratio": "16:9",
"prompt": "Keep the main subject centered and visible"
}
response = requests.request("POST", url, headers=headers, data=payload, files= precinct)
print(response.text)
Reframed Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Enhances video quality using AI-powered upscaling and noise reduction.
video_file or video_url: Input video (required)enhance_mode: Enhancement option (required)compression_scale: Output compression, 0-1 (default: '0.5')import requests
url = "https://api.vimmerse.net/video/enhance"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'enhance_mode': '4X&DeepClean', # Maximum quality enhancement
'compression_scale': '0.7' # Higher quality, larger file
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Enhance video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Adds AI-generated sound effects to silent or noisy videos.
video_file or video_url: Input video (required)prompt: Description of desired sound effects (optional but recommended)import requests
url = "https://api.vimmerse.net/video/sound-effect"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'prompt': 'Add vibrant cafe ambience with coffee brewing and soft chatter'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Video with sound effect
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Creates lip-sync videos using pre-designed avatars with customizable voices.
avatar_id: Avatar ID (required)https://api.vimmerse.net/video/avatars/avatarsvoice_id: Voice ID (required)https://api.vimmerse.net/video/avatars/voicesprompt: Speech text (required)bg_image_file or bg_image_url: Background image (optional)audio_file or audio_url: Background music (optional)aspect_ratio: Video format - '1:1', '16:9', '9:16' (default: '16:9')show_caption: Enable captions - 'On' or 'Off' (default: 'On')import requests
url = "https://api.vimmerse.net/video/avatars/lip-sync"
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'avatar_id': 'avatar_123', # Get from avatars endpoint
'voice_id': 'voice_456', # Get from voices endpoint
'prompt': 'Introducing our new product line',
'bg_image_url': 'https://example.com/background.jpg',
'aspect_ratio': '9:16',
'show_caption': 'On'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
| avatar_id | string (Avatar ID) Default: "" You can get list of avatars from 'https://api.vimmerse.net/video/avatars/avatars?age_range=adult&gender=m&location=indoor' endpoint. You can also update or remove query parameters to filter avatars. |
| voice_id | string (Voice ID) Default: "" You can get list of voices from 'https://api.vimmerse.net/video/avatars/voices' endpoint. |
| prompt | string (Prompt) Default: "" Prompt of the speech. |
| bg_image_file | string <binary> (Background Image) |
| bg_image_url | string (Background Image URL) Default: "" |
| audio_file | string <binary> (Background Audio) |
| audio_url | string (Background Audio URL) Default: "" |
| aspect_ratio | string (Aspect Ratio) Default: "16:9" Aspect ratio of your video. Available values are '1:1', '16:9' and '9:16'. |
| show_caption | string (Show Caption) Default: "On" Available values are |
| webhook_url | string (Webhook Url) |
Lip Sync Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Generates lip-sync videos by making faces speak audio or text prompts.
You need at least one visual input AND one audio input:
Visual Input:
image_file or image_url: Static image of a personvideo_file or video_url: Video with a personAudio Input:
audio_file or audio_url: Existing audio fileprompt + voice: Text-to-speech conversionprompt: Speech text (required if no audio)voice: Voice selection (required if using prompt)option: Lip-sync methodimport requests
url = "https://api.vimmerse.net/video/lip-sync"
files=[
('image_file', ('person.jpg', open('/path/to/person.jpg', 'rb'), 'image/jpeg'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'prompt': 'Welcome to our product launch event!',
'voice': 'Sarah',
'option': 'Auto'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Lip Sync Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Generates video effects by animating images with specified effects.
Available effects: Explode, Zoom in, Zoom out, Pan left, Pan right, etc.
Creative animation effects for images.
AI-powered video effects with aspect ratio control.
Video generation effects with temporal consistency.
Style-preserving video effects.
image_file or image_url: Base image (required)ref_image_file or ref_image_url: Additional image for specific effects (optional)effect: Description of desired effect (required)option: Effect tool (required)aspect_ratio: Video aspect ratio (optional)quantity: Number of variations (1-4, default: 1)import requests
url = "https://api.vimmerse.net/video/video-effects"
files=[
('image_file', ('image.png', open('/path/to/image.png', 'rb'), 'image/png'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'effect': 'zoom out slowly while rotating',
'option': 'PikaEffects',
'aspect_ratio': '16:9',
'quantity': 2
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Replaces the background of a video with another video or image.
video_file or video_url: Input video with background to replace (required)bg_video_file or bg_video_url: Background video (optional)bg_image_file or bg_image_url: Background image (optional)chroma_key_color: HTML color code for green screen removal (default: 'origin')chroma_tolerance: Color matching tolerance, 0-1 (default: '0.1')overlay_scale: Scale of foreground, 0-1 (default: '0.6666')alignment: Foreground alignment - 'center', 'left', 'right' (default: 'center')start_time: Start timestamp for video background (default: 0)crop_to_content: Crop video to content (default: True)x_offset: Horizontal offset for foreground (default: 0)y_offset: Vertical offset for foreground (default: 0)import requests
url = "https://api.vimmerse.net/video/replace-background"
payload = {
'video_url': 'https://example.com/main_video.mp4',
'bg_video_url': 'https://example.com/background_video.mp4',
'chroma_key_color': 'origin', # or '#00FF00' for green screen
'alignment': 'center'
}
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
import requests
url = "https://api.vimmerse.net/video/replace-background"
payload = {
'video_url': 'https://example.com/main_video.mp4',
'bg_image_url': 'https://example.com/background_image.jpg'
}
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
| video_file | string <binary> (Video input file) Input video file. |
| video_url | string (Video input URL) Default: "" Input video URL. |
| bg_image_file | string <binary> (Image input file) Input image file. |
| bg_image_url | string (Image input URL) Default: "" Input image URL. |
| bg_video_file | string <binary> (Background video file) Input video file. |
| bg_video_url | string (Background video URL) Default: "" Input video URL. |
| chroma_key_color | string (Chroma key color) Default: "origin" HTML color code of chroma key, use #FFFFFF for white, #80FF80 for green, #000000 for black, more codes can be found on https://htmlcolorcodes.com/. When set to 'origin', regular foreground masking is applied instead of chroma masking |
| chroma_tolerance | string (Chroma tolerance) Default: "0.1" Tolerance percentage for the chroma color variations. A float string value between 0 and 1. |
| overlay_scale | string (Overlay Scale) Default: "0.6666" The scale of the overlay with respect to the background. Should be a float string which is between 0 and 1 |
| alignment | string (Alignment) Default: "center" Overlay Alignment. Available values are |
| start_time | string (Start Time) Default: 0 The timestamp of the BG video to start the overlay on the it |
| crop_to_content | boolean (Crop to content.) Default: true Crop the overlay video to its contents. |
| x_offset | integer (X Offset) Default: 0 |
| y_offset | integer (Y Offset) Default: 0 |
| webhook_url | string (Webhook Url) |
Replace Video Background.
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Generates videos by animating multiple element images with prompts.
image_files or image_urls: List of element images (required)prompt: Description of desired video (required)aspect_ratio: Output video ratio (optional)webhook_url: URL to receive completion notification (optional)import requests
url = "https://api.vimmerse.net/video/reference-to-video"
files=[
('image_files', ('character1.png', open('/path/to/char1.png', 'rb'), 'image/png')),
('image_files', ('character2.png', open('/path/to/char2.png', 'rb'), 'image/png'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'prompt': 'Two friends walking together through a sunny park',
'aspect_ratio': '16:9'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Modifies existing videos by applying changes guided by prompts and reference images.
video_file or video_url: Input video to modify (required)image_file or image_url: Reference image for modifications (required)prompt: Description of desired modifications (required)creativity_strength: Editing intensity, 1-10 (default: 4)option: Modification method (default: "LumaModify")import requests
url = "https://api.vimmerse.net/video/modify"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4')),
('image_file', ('reference.jpg', open('/path/to/reference.jpg', 'rb'), 'image/jpeg'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'prompt': 'Make the character jump higher and add more energy',
'creativity_strength': 6
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Video to Video
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Attaches audio tracks to videos with multiple synchronization options.
video_file or video_url: Input video (required)audio_file or audio_url: Audio file to attach (required)attach_mode: Synchronization method (required)webhook_url: Completion notification URL (optional)import requests
url = "https://api.vimmerse.net/video/audio"
files=[
('video_file', ('video.mp4', open('/path/to/video.mp4', 'rb'), 'video/mp4')),
('audio_file', ('music.mp3', open('/path/to/music.mp3', 'rb'), 'audio/mp3'))
]
headers = {
'X-Api-Key': 'YOUR_API_KEY'
}
payload = {
'attach_mode': 'MatchVideo', # Audio will loop to match video length
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Video with Audio
Bad Request
Insufficient Credit
Validation Error
{- "data": {
- "id": "ASSET_ID",
- "customer_id": "CUSTOMER_ID",
- "primary_user_id": "CUSTOMER_ID",
- "args": { },
- "results": [
- "result_url1",
- "result_url2"
], - "thumbnails": [ ],
- "status": "success",
- "mime_type": "MIMETYPE",
- "app_name": "FUNCTION_NAME",
- "created_at": "2025-05-06 16:35:59.840508+00:00",
- "updated_at": "2025-05-06 16:35:59.840508+00:00",
- "history": [ ]
}
}Generate video from text prompt and optional images. Supports various AI models including LumaAI, RunwayML, KlingAI, Veo, Sora, and more.
| title | string (Title) Default: "" |
| description | string (Description) Default: "" |
| media_items | string (Media Items) You can add start and/or end input. Here is an example. [{"type":"image","url": "https://media.vimmerse.net/your/image/file.png", "position": "First"},{"type":"video","url": "https://media.vimmerse.net/your/video/file.mp4", "position": "Last"}]. |
| prompt | string (Prompt) Default: "" Text prompt to generate video. |
| motion_type | string (Motion Type) Default: "Auto" AI model to use for video generation. Available values: |
| aspect_ratio | string (Aspect Ratio) Default: "16:9" Aspect ratio of the generated video. Available values: |
| duration | integer (Duration) [ 1 .. 10 ] Default: 5 Duration of the video in seconds. |
| quantity | integer (Quantity) [ 1 .. 10 ] Default: 1 Number of videos to generate. |
| audio_option | string (Audio Option) Audio configuration options for media generation. See media API documentation for details. |
| seed | integer (Seed) Default: 0 Random seed for video generation. Use 0 for random. |
| model | string (Model) Default: "" Specific model variant to use (if applicable). |
| webhook_url | string (Webhook Url) |
Generated video from text prompt and/or images (first and last frame).
Validation Error
{ }