Skip to main content
POST
Starts a try-on and returns a generationId. The work runs in the background: poll Generation Status or use client.generations.waitFor(). Costs 1 credit, refunded if the generation fails. Prefer one call that returns the image? Use Create Try-On (sync): same body, no polling.
Send the full product title and description. They tell the AI what the garment is and how it fits (cut, length), which gives faster and more accurate results.

Body

array
required
Exactly one item.Reuse the ID. The first try-on of a product analyzes it, which adds a few seconds. Later calls with just { externalId } skip that step and return faster. Every try-on resets the product lifetime. See Products.
object
required
The customer photo: { image: { source: { ... } } } with exactly one of:url and fileKey are always cropped to 4:5 around the person.
string
Your own user ID, for GDPR deletion. No PII.
object
Testing: a product titled mock returns the person photo unchanged, fast. It still costs 1 credit.

Response

string
required
string
required
Always PENDING.
string
Your externalId, or the generated ID of a one-shot product.

Errors

All codes: Errors.
Deprecated but still accepted: the 1.0 body with singular product, customer: { id | url | fileKey }, customerId, useWatermark and retentionDays. Don’t mix it with new fields. See the Changelog.