Basics
How it works
- Upload the customer photo once. Reuse the
imageIdfor every try-on. - Create the try-on with the product inline (
externalId, title, description, images). The product is created or updated in the same call. Next time, send only theexternalId. - Poll the generation until
COMPLETED, or callclient.generations.waitFor()in the SDK.
Products
products takes exactly one item. Three ways to send it:
Every try-on resets the lifetime, so products in use never expire. If a reference returns
PRODUCT_NOT_FOUND, resend it inline. POST /products is optional: use it only for products that should never expire or should appear in GET /products.
Limits
429 RATE_LIMITEDwhen you send too many requests. Back off and retry. Normal traffic, polling included, stays well below the limit.402 INSUFFICIENT_CREDITSwhen the balance is empty. Top up in the dashboard.- Images: JPEG, PNG, WebP or HEIC, 10 MB max.
Next steps
Quickstart
First try-on in 5 minutes
TypeScript SDK
Typed client with a built-in poller
Example app (Next.js)
Clone a working integration
MCP server
Try-on from Claude, ChatGPT or Cursor

