Skip to main content
POST
/
api
/
content
/
video
cURL
curl --request POST \
  --url https://recoup-api.vercel.app/api/content/video \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "image_url": "<string>",
  "template": "<string>",
  "mode": "prompt",
  "prompt": "<string>",
  "end_image_url": "<string>",
  "video_url": "<string>",
  "audio_url": "<string>",
  "aspect_ratio": "auto",
  "duration": "8s",
  "resolution": "720p",
  "negative_prompt": "<string>",
  "generate_audio": false,
  "model": "<string>"
}
'
{
  "videoUrl": "<string>",
  "mode": "prompt"
}

Authorizations

x-api-key
string
header
required

Your Recoup API key. Learn more.

Body

application/json

Video generation parameters

image_url
string<uri>
required

Required. Image URL used as the input frame. The underlying model (fal-ai/veo3.1/fast/image-to-video) requires an image — text-only prompt mode is not supported. Generate an image first via POST /api/content/image if needed.

template
string

Optional template ID. When provided, the template's video config (moods, movements) is used as the motion prompt. Caller params override template defaults. See GET /api/content/templates for available options.

mode
enum<string>

What kind of video to generate. If omitted, inferred from the inputs you provide.

Available options:
prompt,
animate,
reference,
extend,
first-last,
lipsync
prompt
string

Text describing the video content, motion, or how to continue/extend

end_image_url
string<uri>

End frame image URL. Only used with first-last mode

video_url
string<uri>

Video URL to extend. Only used with extend mode (max 8 seconds input)

audio_url
string<uri>

Audio URL for lipsync mode. The generated face will move in sync with this audio

aspect_ratio
enum<string>
default:auto

Aspect ratio of the output video

Available options:
auto,
16:9,
9:16
duration
enum<string>
default:8s

Duration of the generated video

Available options:
4s,
6s,
7s,
8s
resolution
enum<string>
default:720p

Output resolution

Available options:
720p,
1080p,
4k
negative_prompt
string

Describe what you do NOT want in the video

generate_audio
boolean
default:false

Generate audio for the video

model
string

Override the model. Auto-selected based on mode if omitted

Response

Video generated successfully

videoUrl
string<uri>
required

URL of the generated video

mode
enum<string>
required

The resolved video generation mode (explicit or inferred from inputs)

Available options:
prompt,
animate,
reference,
extend,
first-last,
lipsync