Skip to main content
POST
https://vibetool.ai
/
v1
/
videos
/
generations
curl -X POST [https://vibetool.ai/v1/videos/generations](https://vibetool.ai/v1/videos/generations) \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omnihuman-1.5",
    "audio_url": "https://example.com/audio.mp3",
    "image_urls": ["https://example.com/person.jpg"],
    "prompt": "A person speaking naturally with subtle expressions",
    "pe_fast_mode": false,
    "subject_check": false,
    "auto_mask": false,
    "callback_url": "https://your-domain.com/webhooks/video-task-completed"
  }'
{
  "task_id": "vid_202512301327_4d50e7c6",
  "status": "pending",
  "message": null,
  "created_at": 1767072426
}
  • This endpoint runs in asynchronous mode. Use the returned task_id to query task status.
  • Generated video links are valid for 24 hours. Save them promptly.
  • Audio duration limit: maximum 35 seconds
  • Supported audio formats: MP3, WAV
  • Billing is based on audio duration (rounded up to the nearest second)

Authorization

Authorization
string
required
All APIs require Bearer Token authentication. Format: Bearer YOUR_API_KEY

Body

model
string
default:"omnihuman-1.5"
required
Digital human video generation model name.Example: "omnihuman-1.5"
audio_url
string<uri>
required
Audio URL for driving lip-sync and body movements.Notes:
  • Maximum audio duration: 35 seconds
  • Supported formats: .mp3, .wav
  • Audio URLs must be directly accessible by the server
  • Billing is based on audio duration (rounded up to the nearest second)
Example: "https://example.com/audio.mp3"
image_urls
string<uri>[]
required
Reference image URL list containing the person to animate.Notes:
  • Number of images per request: 1
  • Image should contain a clear human figure
  • Maximum image size: 10MB
  • Supported formats: .jpg, .jpeg, .png, .webp
  • Image URLs must be directly viewable by the server
  • Maximum array length: 1
Example:
["https://example.com/person.jpg"]
prompt
string
Optional text prompt to guide the generation style.Note: Only supports Chinese, English, Japanese, Korean, Mexican Spanish, and Indonesian.Example: "A person speaking naturally with subtle expressions"
pe_fast_mode
boolean
default:"false"
Enable fast processing mode.Notes:
  • true: faster generation with potentially lower quality
  • false: standard quality processing (default)
Example: false
mask_url
string<uri>[]
Mask URL array for specifying animation regions.Notes:
  • Optional parameter for advanced control
  • Mask images should match the reference image dimensions
Example:
["https://example.com/mask.png"]
seed
integer
Random seed as the basis for determining the initial diffusion state. Default is random.Note: If the seed is the same positive integer and all other parameters are consistent, the generated content may be consistent.
subject_check
boolean
default:"false"
Enable subject detection to verify human presence in the image.Notes:
  • true: enable subject detection, request initiation time will increase
  • false: skip subject detection (default)
Example: false
auto_mask
boolean
default:"false"
Enable automatic mask generation.Notes:
  • true: automatically detect and mask the human figure, request initiation time will increase
  • This parameter is ignored when mask_url has a value
  • false: use provided mask_url or no mask (default)
Example: false
callback_url
string<uri>
HTTPS callback address after task completion.Callback timing:
  • Triggered when task is completed, failed, or cancelled
  • Sent after billing confirmation is completed
Security restrictions:
  • Only HTTPS is supported
  • Callback to internal IP addresses is prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • URL length must not exceed 2048 characters
Callback mechanism:
  • Timeout: 10s
  • Maximum 3 retries on failure (after 1s / 2s / 4s)
  • Returning any 2xx status code is considered successful; otherwise it will retry
Example: "https://your-domain.com/webhooks/video-task-completed"

Response Schema

Digital human video generation task created successfully.
task_id
string
required
Task ID. Use it to query task status.
status
enum<string>
required
Task status.Available options: pending, processing, completed, failed
message
string | null
Optional message from the provider.
created_at
integer
required
Task creation timestamp (unix seconds).
curl -X POST [https://vibetool.ai/v1/videos/generations](https://vibetool.ai/v1/videos/generations) \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omnihuman-1.5",
    "audio_url": "https://example.com/audio.mp3",
    "image_urls": ["https://example.com/person.jpg"],
    "prompt": "A person speaking naturally with subtle expressions",
    "pe_fast_mode": false,
    "subject_check": false,
    "auto_mask": false,
    "callback_url": "https://your-domain.com/webhooks/video-task-completed"
  }'
{
  "task_id": "vid_202512301327_4d50e7c6",
  "status": "pending",
  "message": null,
  "created_at": 1767072426
}