Replicate a visual identity across your catalog. Provide one or more reference assets and Clone generates a matching visual for the target ASIN from each one. Every item you send comes back as a generated asset of the same platform and asset type as the reference it was cloned from.

Users often call this “scale”. Both names mean this endpoint, and the path stays `/v1/api/scale`.

> This is an async endpoint. It returns a `job_id` immediately. Use the [Jobs API](/content/api-docs/jobs/index.html) to poll for the result.

## Endpoint

```
POST /v1/api/scale
```

## Request body

| Parameter              | Type        | Required | Description                                                                   |
|------------------------|-------------|----------|-------------------------------------------------------------------------------|
| `asin`                 | `string`    | Required | Amazon Standard Identification Number.                                         |
| `country_code`         | `string`    | Required | Target marketplace. See the [supported marketplaces](/content/api-docs/listing-builder#supported-marketplaces/index.html) list. |
| `scale_mode`           | `enum`      | Required | How Clone should generate the new assets. See [scale modes](/content/api-docs/clone/#scale-modes/index.html) below. |
| `main_image_input`     | `string`    | Optional | URL of the product's main image. Must be a publicly accessible image URL.     |
| `other_images_input`   | `string[]`  | Optional | Additional product image URLs. Minimum 1 item if provided.                   |
| `user_prompt`          | `string`    | Optional | Optional natural-language guidance for the generation. Cannot be empty if provided. |
| `items`                | `ScaleItem[]` | Required | Reference assets to clone from. Minimum 1 item. See [item shape](/content/api-docs/clone/#item-shape/index.html) below. |

## Scale modes

The `scale_mode` field accepts one of:

- `catalog`: Apply the reference visuals across all your products
- `inspire`: Use the references visuals as creative inspiration
- `variation`: Generate variations - color/size/flavour
- `language`: Translate copy on the provided visual to a new language. You must specify language in the user_prompt

## Item shape

Each entry in `items` describes one reference asset you are supplying. Its `platform` and `asset_type` describe that reference, and they are also what Pixii generates from it: send an `Amazon` / `Main Image` reference and you get back an Amazon main image for the target ASIN.

| Parameter        | Type        | Required | Description                                                                    |
|------------------|-------------|----------|--------------------------------------------------------------------------------|
| `preview_url`    | `string`    | Required | Publicly accessible URL of the reference asset to clone from.                  |
| `platform`       | `enum`      | Required | Platform this reference asset belongs to, and the platform the generated asset is produced for. See [platforms](/content/api-docs/clone/#platforms-and-asset-types/index.html) below. |
| `asset_type`     | `enum`      | Required | Asset type of this reference, and of the asset generated from it. Valid values depend on `platform`. |

## Platforms and asset types

`platform` accepts:

- `Amazon`: Amazon desktop product page
- `Amazon Mobile`: Amazon mobile product page
- `Shopify`: Shopify product page
- `TikTok`: TikTok Shop product page
- `Walmart`: Walmart product page

`asset_type` accepts `Product Photo` or `Main Image`. Pixii returns a `VALIDATION_ERROR` for a combination it does not support.

| Platform          | Allowed asset types                    |
|-------------------|--------------------------------------|
| `Amazon`          | `Product Photo`, `Main Image`       |
| `Amazon Mobile`   | `Product Photo`, `Main Image`       |
| `Shopify`         | `Product Photo`, `Main Image`       |
| `TikTok`          | `Product Photo`, `Main Image`       |
| `Walmart`         | `Product Photo`, `Main Image`       |

## Response

A successful request returns `200` with a job ID. Same response shape as Listing Builder — see [the Jobs API](/content/api-docs/jobs/index.html) for the polling result format. Completed Clone jobs report `job_type: "Clone"`.

## Errors

| Code                          | HTTP  | Description                                                                 |
|-------------------------------|-------|-----------------------------------------------------------------------------|
| `VALIDATION_ERROR`            | 400   | One or more request parameters are invalid (including unsupported `platform` × `asset_type` combinations). |
| `NO_ACTIVE_BRAND`             | 400   | No active brand found for your organization.                                |
| `UNAUTHORIZED`                | 401   | Missing or invalid API key.                                                |
| `INSUFFICIENT_CREDITS`       | 402   | Not enough credits to process this request.                               |
| `RATE_LIMIT_MINUTE_EXCEEDED` | 429   | Too many requests in the current minute window.                           |
| `RATE_LIMIT_DAY_EXCEEDED`    | 429   | Daily request limit reached.                                              |
| `INTERNAL_ERROR`              | 500   | An unexpected error occurred.                                             |
| `SERVICE_UNAVAILABLE`         | 503   | Service is temporarily unavailable.                                       |

See the [errors reference](/content/api-docs/errors/index.html) for the full list.
