> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genlook.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Multiple products

> Try a whole look at once: up to 4 clothing items worn together in one result.

Send two to four clothing items in `products` and the person wears all of them in one result: a shirt with trousers, a dress under a trench coat, a full suit. Only those garments change. Everything else the person wears, shoes included, stays as it is in their photo.

| | |
| - | - |
| Products | 1 to 4 per try-on |
| Price | 1 credit per product, refunded on failure. Half that in a [batch](/docs/tryon-api/batches) |
| Products allowed | Clothing only: tops, bottoms, dresses, jackets, coats, sets |
| Speed | About 1.5 seconds more per extra product |

Works with [`POST /try-on`](/docs/tryon-api/endpoints/create-try-on), [`POST /try-on/sync`](/docs/tryon-api/endpoints/create-try-on-sync) and [batches](/docs/tryon-api/batches). Every item takes the same shapes as a single product: a reference, an inline product, or a one-shot.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.genlook.app/tryon/v1/try-on/sync" \
    -H "x-api-key: gk_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "products": [
        {
          "externalId": "shirt-42",
          "title": "Light blue oxford shirt",
          "images": [{ "source": { "url": "https://cdn.example.com/oxford-shirt.jpg" } }]
        },
        {
          "externalId": "chino-7",
          "title": "Beige straight-leg chinos",
          "images": [{ "source": { "url": "https://cdn.example.com/beige-chinos.jpg" } }]
        },
        { "externalId": "blazer-3" }
      ],
      "person": { "image": { "source": { "id": "<imageId>" } } }
    }'
  ```

  ```ts Node SDK theme={null}
  const result = await client.tryOn.createSync({
    products: [
      { externalId: "shirt-42" },
      { externalId: "chino-7" },
      { externalId: "blazer-3" },
    ],
    person: { image: { source: { id: imageId } } },
  });
  console.log(result.resultImageUrl, result.productExternalIds);
  ```
</CodeGroup>

The order of `products` does not matter for layering: jackets, coats and vests are worn over the tops automatically. The response lists every product in `productExternalIds`, in the order you sent them.

## Best results

* **Send the title, and the description when you have it.** They tell the AI which garment of the photo is the product, especially on photos where the model wears a full outfit.
* **Packshots work best**, photos on a model work well too. Use the photo that shows the whole garment.
* **One item per part of the body**, plus outer layers: a top and a bottom, or a dress, then a jacket or coat on top. Two bottoms in one try-on give unpredictable results.
* **Use a full-body photo of the person** when the look includes trousers, skirts or a long coat. On a half-body photo, only what fits in the frame is visible.

## Limits

* Clothing only. A try-on with glasses, a hat, shoes, a bag or jewellery among several products fails with `MULTI_PRODUCT_NOT_SUPPORTED` and the credits are refunded. Send those products in their own try-on.
* Up to 4 products. A fifth returns `400 VALIDATION_FAILED`.
* Uploaded product files share the request's 10-file limit.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.