Core Endpoints
The catalog, upload and status endpoints every generation tool builds on. Full schemas are also in the OpenAPI reference.
GET /v1/models
Every generation tool, its input shape and fallback price — the catalog behind the tool pages.
curl https://api.fashiolabs.com/v1/models \
-H "Authorization: Bearer fio_live_YOUR_KEY"
{
"success": true,
"models": [
{ "id": "virtual_model", "inputShape": "model_garment", "promptMode": "assembled", "fallbackPriceDiamonds": 4 },
{ "id": "photo_reframe", "inputShape": "deterministic", "promptMode": "none", "fallbackPriceDiamonds": 2 }
]
}GET /v1/fashion-models
The selectable AI person/model catalog — pass an entry's id as
images.fashion_model on any model_garment tool.
| Query param | Description | |
|---|---|---|
gender | optional | Filter by gender. |
limit | optional | 1–100, default 20. |
curl "https://api.fashiolabs.com/v1/fashion-models?gender=female&limit=20" \
-H "Authorization: Bearer fio_live_YOUR_KEY"
{ "success": true, "fashionModels": [ { "id": "fm_south_asian_01", "...": "..." } ] }GET /v1/venues
The selectable environment/background catalog — pass an entry's id as
images.venue.
curl "https://api.fashiolabs.com/v1/venues?limit=20" \
-H "Authorization: Bearer fio_live_YOUR_KEY"
{ "success": true, "venues": [ { "id": "venue_studio_white", "...": "..." } ] }GET /v1/poses
The selectable pose catalog — pass an entry's id as pose.
| Query param | Description | |
|---|---|---|
type | optional | Omit for the default pose set. |
limit | optional | 1–100, default 20. |
curl "https://api.fashiolabs.com/v1/poses?limit=20" \
-H "Authorization: Bearer fio_live_YOUR_KEY"
{ "success": true, "poses": [ { "id": "pose_standing_relaxed", "...": "..." } ] }POST /v1/uploads
Send raw image bytes with an image/jpeg, image/png or image/webp
Content-Type — get back a public URL to use in images.* fields. Max
8 MB.
curl -X POST https://api.fashiolabs.com/v1/uploads \
-H "Authorization: Bearer fio_live_YOUR_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @garment.jpg
{ "success": true, "id": "3f2a9e1c-...", "url": "https://firebasestorage.googleapis.com/..." }You can skip this entirely and pass any publicly reachable image URL directly instead.
GET /v1/generations/:id
Poll a job started by POST /v1/generations (any tool). See
Quickstart for the full poll loop.
{
"success": true,
"id": "8b1e...",
"status": "completed",
"resultUrls": ["https://.../result.jpg"],
"errorMessage": null
}status is one of processing, completed, failed.
resultUrls has one entry for most tools, and multiple for pack tools
(clothing_ecom_pack, jewelry_ecom_pack).