F Fashio Docs
Reference

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"
200{ "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 paramDescription
genderoptionalFilter by gender.
limitoptional1–100, default 20.
curl "https://api.fashiolabs.com/v1/fashion-models?gender=female&limit=20" \
  -H "Authorization: Bearer fio_live_YOUR_KEY"
200{ "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"
200{ "success": true, "venues": [ { "id": "venue_studio_white", "...": "..." } ] }

GET /v1/poses

The selectable pose catalog — pass an entry's id as pose.

Query paramDescription
typeoptionalOmit for the default pose set.
limitoptional1–100, default 20.
curl "https://api.fashiolabs.com/v1/poses?limit=20" \
  -H "Authorization: Bearer fio_live_YOUR_KEY"
200{ "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
200{ "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.

200{ "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).