API docs menu
Reference
Create a video
/v1/videosCreates a 5 or 10 second fashion video of your product on an AI model, up to 4K, with optional AI sound. Same flow as photos: it answers 202 with a queued generation; a video is usually ready in 2 to 6 minutes.
product_imagesarrayrequired1 to 3 photos of the product: { "url": "https://…" } or { "upload_id": "upl_…" }. Flat lays, hanger and ghost-mannequin shots and packshots all work. Different angles of one item are fine; another colour of the same item goes in a separate generation.
model_idstringrequiredA library model (mdl_lib_…) or one of your custom models (mdl_own_…). List them with GET /v1/models.
promptstringrequired3 to 1500 characters: the motion and setting, for example "model walks towards the camera".
location_idstringoptionalA library or custom location (loc_lib_…, loc_own_…). Adds 10 credits. Leave it out to describe the setting in the prompt.
aspect_ratioenumdefault 9:161:1 · 16:9 · 9:16
duration_secondsenumdefault 55 · 10
tierenumdefault defaultturbo · default · premium · ultra (Business and up).
qualityenumdefault 1k1k · 2k · 4k
soundbooleandefault falseAI sound effects (ambient and foley, not voiceover or music). 10 credits.
metadataobjectoptionalYour own references, returned unchanged: up to 20 keys (letters, digits, - or _, up to 40 characters), values up to 500 characters. metadata.sku (or reference) is shown on the result in My Generations.
webhook_urlstringoptionalAn https address we call once when this generation ends: succeeded, failed or canceled. The call carries only its id, type and status, not the result, and isn't signed, so read the result with GET /v1/generations/{id}. See Webhooks.
curl https://api.fittins.ai/v1/videos \
-H "Authorization: Bearer $FITTINS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: dress-blue-walk-v1" \
-d '{
"product_images": [
{
"url": "https://cdn.mystore.com/p/dress-blue.jpg"
}
],
"model_id": "mdl_lib_DM5rQvl3KtlR7nqumd6I",
"prompt": "model walks towards the camera, soft daylight",
"aspect_ratio": "9:16",
"duration_seconds": 5,
"quality": "1k",
"sound": true,
"metadata": {
"sku": "DRESS-BLUE-S"
}
}'{
"file_id": "file_3f9c2a7b1e0d4c6a8b2f5e1d",
"url": "https://api.fittins.ai/v1/files/file_3f9c2a7b1e0d4c6a8b2f5e1d/content?expires=1793905382&sig=Jk2v…",
"url_expires_at": "2026-11-05T17:03:02.000Z",
"format": "mp4",
"width": 720,
"height": 1280,
"duration_seconds": 5,
"quality": "1k",
"has_sound": true,
"title": "Blue dress on a model, walking towards the camera",
"alt_text": "Model in a blue summer dress walking towards the camera in soft daylight"
}Credits per video
| Tier | 5 seconds | 10 seconds |
|---|---|---|
| Turbo | 80 | 120 |
| Default | 130 | 190 |
| Premium | 160 | 230 |
| Ultra | 200 | 290 |
2K or 4K adds 20 credits for 5 seconds or 40 for 10 seconds. Sound adds 10. If the sound step fails you get the silent video and aren't charged for sound; output.has_sound tells you which. Credits are taken once, when the video is saved.