API docs menu
Reference
Create an image
/v1/imagesCreates an on-model photo of your product on an AI model. Everything that can be checked is checked before it answers (the fields, your model and location, your plan, credits, storage and running generations), so most problems come back at once. It then answers 202 with a queued generation; the photo is usually ready in about a minute.
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: pose, framing, light, mood, setting.
location_idstringoptionalA library or custom location (loc_lib_…, loc_own_…). Leave it out to describe the setting in the prompt.
aspect_ratioenumdefault 1:11:1 · 9:16 · 16:9 · 3:4 · 4:3 · 3:2 · 2:3
tierenumdefault defaultturbo · default · premium (Starter plan and up) · ultra (Business and up).
qualityenumdefault 1k1k · 2k · 4k · 8k. 2K, 4K and 8K are upscaled from the generated photo.
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.
Headers: Authorization (required), Content-Type: application/json, Idempotency-Key (recommended).
curl https://api.fittins.ai/v1/images \
-H "Authorization: Bearer $FITTINS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tshirt-red-m-front-v1" \
-d '{
"product_images": [
{
"url": "https://cdn.mystore.com/p/tshirt-red-front.jpg"
}
],
"model_id": "mdl_lib_DM5rQvl3KtlR7nqumd6I",
"prompt": "full body, plain light grey background, soft studio light, front view",
"aspect_ratio": "3:4",
"tier": "default",
"quality": "2k",
"metadata": {
"sku": "TSHIRT-RED-M"
}
}'{
"id": "gen_7Hq2Mz9TkQ4x1bVnR8sL",
"object": "generation",
"type": "image",
"status": "queued",
"created_at": "2026-11-04T17:02:11.000Z",
"started_at": null,
"completed_at": null,
"input": {
"model_id": "mdl_lib_DM5rQvl3KtlR7nqumd6I",
"product_images": [
{
"url": "https://cdn.mystore.com/p/tshirt-red-front.jpg"
}
],
"location_id": null,
"prompt": "full body, plain light grey background, soft studio light, front view",
"aspect_ratio": "3:4",
"tier": "default",
"quality": "2k"
},
"output": null,
"credits": {
"estimated": 50,
"charged": 0
},
"project_id": null,
"metadata": {
"sku": "TSHIRT-RED-M"
},
"error": null,
"livemode": true
}Credits per photo
| Tier | 1K | 2K | 4K | 8K |
|---|---|---|---|---|
| Turbo | 30 | 40 | 40 | 50 |
| Default | 40 | 50 | 50 | 60 |
| Premium | 60 | 70 | 70 | 80 |
| Ultra | 80 | 90 | 90 | 100 |
The same credits as on fittins.ai. They are taken once, when the photo is saved. A refused or failed generation costs nothing. If upscaling to 2K, 4K or 8K fails, you get the 1K photo, 40 credits are charged, and output.quality says 1k.