Fittins AI Logo
API docs menu

Reference

Create a video

POST/v1/videos

Creates 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_imagesarrayrequired

1 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_idstringrequired

A library model (mdl_lib_…) or one of your custom models (mdl_own_…). List them with GET /v1/models.

promptstringrequired

3 to 1500 characters: the motion and setting, for example "model walks towards the camera".

location_idstringoptional

A library or custom location (loc_lib_…, loc_own_…). Adds 10 credits. Leave it out to describe the setting in the prompt.

aspect_ratioenumdefault 9:16

1:1 · 16:9 · 9:16

duration_secondsenumdefault 5

5 · 10

tierenumdefault default

turbo · default · premium · ultra (Business and up).

qualityenumdefault 1k

1k · 2k · 4k

soundbooleandefault false

AI sound effects (ambient and foley, not voiceover or music). 10 credits.

metadataobjectoptional

Your 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_urlstringoptional

An 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"
  }
}'
output when succeeded
{
  "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

Tier5 seconds10 seconds
Turbo80120
Default130190
Premium160230
Ultra200290

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.

Questions? Email support@fittins.ai with the X-Request-Id of the request.Next: Generations →