Video

Make a clip with any video model

One request shape for every video model — pick it by model (ids in GET /v1/ai/models/catalog). What you send decides the mode: a prompt alone (text to video), image_url (first frame), image_url + last_frame_url, reference_images, or video_url — each model takes the ones its catalog entry lists, and its own lengths and resolutions (a value it does not make is refused with the ones it does, before anything is charged).

The model runs at its maker's own API. A refusal at the start (busy, unavailable, the model not open to us) is answered 503 and nothing is charged; a backup route (Higgsfield, fal) runs the same model — never another one — only while the admin setting source_models_backups allows it (off by default). A model that puts a person's picture into motion (consent_required in the catalog: kling-motion-control, genjutsu-motion-transfer, genjutsu-object-swap) follows the face-swap rules: the picture is checked first — a public figure or a minor is refused — and a real person's likeness runs only with the customer's own consent declaration (consent, as for POST /v1/ai/face-swap); a drawing or a mascot needs none. Every clip is marked as AI-generated inside the file. The result is our copy, kept 24 hours.

Asynchronous: wait with x-wait-ms or poll GET /v1/executions/{id}. Price: per generated second by resolution (a few models: per clip) — see POST /v1/ai/models/video/estimate. A refused or failed request is not charged.

Billing: Per generated second, by model and resolution (sound included where the model makes it). A refused or failed request is not charged. · Rate limit: 20/min · Asynchronous

post/v1/ai/models/video

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/ai/models/video
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Replay-safe: the same execution is returned instead of charging twice

X-Tagstring

Group calls into one job (e.g. one video) — see GET /v1/usage?tag=…

x-wait-msinteger

Wait for the job inside this call (ms)

Request body

seedinteger
audioboolean

Sound made with the clip (ambience, effects, speech) — models with sound only; omitted = the model's default

modelstring required

A video model id from GET /v1/ai/models/catalog — e.g. kling-3.0, wan-3.0, seedance-2.5, minimax-h3, ltx-2.5-fast

route'auto' | 'direct' | 'higgsfield' | 'fal'

Team accounts only (ignored for others): where the model runs for a comparison — the maker directly, or a backup route (Higgsfield, fal) even while the backups are off for customers

stylestring

Models with styles only (genjutsu-restyle): a style preset's id or name — the catalog lists them under styles

promptstring

What happens in the clip: subject, action, camera, light. Required except for models that only work on a video you send

durationinteger

Seconds. Each model has its own lengths (see the catalog); omitted = the model's default. Every generated second is billed

image_urlstring uri

First frame (image-to-video). The clip keeps the picture's look

video_urlstring uri

A video the model works on: the clip to edit, restyle or upscale, or the motion to copy — models that take a video only. Its length is the clip's (duration is not asked)

consent_idstring

A consent you recorded before (the dashboard records one when you tick the box)

resolution'480p' | '720p' | '1080p' | '2k' | '4k'

Omitted = the model's default (usually 720p). Higher costs more per second

aspect_ratio'9:16' | '16:9' | '1:1' | '4:3' | '3:4' | '21:9'
last_frame_urlstring uri

Last frame (needs image_url): the clip moves from the first picture to this one — models with first+last frame only

negative_promptstring

What to keep out of the clip (models that take it)

reference_imagesstring[]

People, products or places to put in the clip (not a start frame) — models with references only; each model takes its own maximum

Response

Completed (or 202 while processing)

idstring

Execution id — stable across internal retries; use it with GET /v1/executions/{id}

status'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
operationstring
tagstring nullable

Your X-Tag, if sent

created_atstring date-time
completed_atstring date-time nullable
outputobject

Operation result (see each operation). While a Studio render is processing: stage (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), phase (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), progress (a percent, 0–100) and progress_fraction (0–1), eta_seconds (seconds left, never below 0) and estimate_seconds

errorstring nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.