Skip to main content
POST

Authorizations

Authorization
string
header
required

All APIs require Bearer Token authentication

Add to request header:

Authorization: Bearer YOUR_API_KEY

Body

application/json
model
string
default:lipsync-2
required

lipsync-2: Standard quality lipsync-2-pro: Higher quality sync-3: Next-generation, professional quality; does not support temperature or active_speaker

Examples:

"lipsync-2"

"lipsync-2-pro"

"sync-3"

video_url
string
required

Public URL of the input video file

Notes:

  • Format: MP4
  • Must be a publicly accessible URL
Example:

"https://v3.fal.media/files/tiger/IugLCDJRIoGqvqTa-EJTr_3wg74vCqyNuQ-IiBd77MM_output.mp4"

audio_url
string
required

Public URL of the input audio file

Notes:

  • Format: MP3 / WAV
  • Must be a publicly accessible URL
  • Audio duration directly affects output video duration and billing (depends on sync_mode)
Example:

"https://fal.media/files/lion/vyFWygmZsIZlUO4s0nr2n.wav"

sync_mode
string
default:loop

Video-audio synchronization mode, determines output video duration

Options:

  • bounce — Video plays back and forth to match audio length, output duration = audio duration
  • loop — Video loops to match audio length, output duration = audio duration
  • cut_off — Audio is trimmed when video ends, output duration = min(video, audio)
  • silence — Video is padded with silence at the end, output duration = video duration
  • remap — Audio timeline is remapped to match video, output duration = audio duration
Example:

"loop"

temperature
number | null

Mouth movement expressiveness control, default 0.5

Notes:

  • Range: 0.0 - 1.0
  • Only supported by lipsync-2 and lipsync-2-pro
  • sync-3 does not support this parameter

Do not pass this parameter unless necessary.

Required range: 0 <= x <= 1
Example:

0.8

active_speaker
boolean | null

Enable active speaker detection

Notes:

  • Only supported by lipsync-2 and lipsync-2-pro
  • sync-3 does not support this parameter

Do not pass this parameter unless necessary.

Example:

true

Response

Task created successfully

created
integer

Task creation timestamp

Example:

1757165031

id
string

Task ID

Example:

"task-unified-1757165031-uyujaw3d"

model
string

Actual model name used

object
enum<string>

Specific task type

Available options:
video.generation.task
progress
integer

Task progress percentage (0-100)

Required range: 0 <= x <= 100
Example:

0

status
enum<string>

Task status

Available options:
pending,
processing,
completed,
failed
Example:

"pending"

task_info
object

Asynchronous task info

type
enum<string>

Task output type

Available options:
video
Example:

"video"