Scale
Reproduce master visuals across up to 50 products in one run. Variants, translations, a different product, or a stolen look.
Design 1 listing perfectly, then scale that visual identity across every product in your catalog. Give Pixii the master visuals (your own listing’s images, or any listing’s look) and the products to apply them to. Pixii runs one listing per product in parallel and packs every result into a single zip.
Scale requires a paid Pixii plan, and more than one product per run requires the Scale plan. Each master visual costs 10 credits per product (A+ formats 10 to 30, videos 40), so the run’s credit_cost is master visuals × products. Products that fail are refunded individually. Each product may appear once per run; a duplicate is rejected with VALIDATION_ERROR. If no product produces a single visual, the job fails with IMAGE_GENERATION_ERROR and the whole charge is refunded.
This is an async endpoint. It returns a
job_idimmediately. Use the Jobs API to poll for the result. A run across many products can take a long time; poll every 30 seconds.
Endpoint
POST /v2/api/scaleRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | number | Optional | The brand to work in. Take it from Brands. Defaults to your default brand. |
scale_mode | enum | Required | How the master visuals are reinterpreted. See scale modes. |
master_visuals | object[] | Required | One to ten visuals to reproduce. See master visuals. |
products | object[] | Required | One to fifty products to scale to. Each is an asin with country_code (optionally with your own main_image and other_images) or a product_id. A Walmart item ID or an Amazon, Walmart or Shopify product page URL also works in asin; a product Pixii has not seen yet is fetched and saved. See the product fields. |
user_prompt | string | Optional | Creative direction applied to every product, up to 1000 characters. Required for Translate: name the target language, for example "Translate all text to German". |
Scale modes
Variant Same product, other color, size, flavor, material or bundle. Keeps the layout, swaps the variant. Translate Same listing, another language or marketplace. Put the language in user_prompt. Different Product Same brand, another product. A creative reinterpretation of the master visuals. Steal the Look Extract the visual style of any listing's images and apply it to your products. Master visuals
Each entry of master_visuals is an object:
| Parameter | Type | Required | Description |
|---|---|---|---|
visual | image | Required | The master visual, as a public image URL or base64 bytes. It is a reference image for every asset type: for video asset types Pixii renders a new video from it, it never ingests a video file. |
asset_type | enum | Required | What kind of visual this is. See asset types. |
platform | enum | Optional | Platform of the visual: Amazon (default), Amazon Mobile, Shopify, Walmart, TikTok or Instagram. Which platforms an asset type accepts is listed below. |
Master visual asset types
asset_type | Platforms | Credits per product |
|---|---|---|
Main Image | Amazon, Amazon Mobile, Shopify, Walmart, TikTok | 10 |
Product Photo | Amazon, Amazon Mobile, Shopify, Walmart, TikTok | 10 |
A+ Premium Seamless Modules, A+ Premium Separate Modules, A+ Basic Seamless Modules, A+ Basic Separate Modules, A+ Premium Mobile Seamless Modules, A+ Premium Mobile Separate Modules | Amazon, Amazon Mobile | 30 |
A+ Premium Single Module, A+ Basic Single Module, A+ Premium Mobile Single Module | Amazon, Amazon Mobile | 10 |
Listing Video, 360 Rotating, Sponsored Products | Amazon | 40 |
Talking UGC | Amazon (default), Instagram | 40 |
Reels Ad | Instagram | 40 |
Response
A successful request returns 200 with a job id. The job runs in the background, so use the Jobs API to retrieve the result.
| Field | Type | Description |
|---|---|---|
job_id | string | Unique identifier for the job. Use this to poll for results. |
job_type | string | Always scale for this endpoint. |
brand_id | number | The brand the job runs in. |
status | string | Initial status. Always pending on submission. |
created_at | string | ISO 8601 timestamp of when the job was created. |
credit_cost | number | master visuals cost × number of products. |
remaining_credits | number | Credits remaining on your account after this request was accepted. |
Job output
When the job completes, output contains:
| Field | Type | Description |
|---|---|---|
factory_id | string | ID of the Scale run. |
scale_mode | string | The requested mode. |
zip_url | string | Signed URL of a zip with one folder per product. Minted fresh on every read. |
zip_url_expires_at | string | ISO 8601 expiry of zip_url. |
products | array | One entry per product. |
products[].product | object | product_id, asin and country_code. |
products[].session_id | string | The Pixii session that holds that product’s visuals. |
products[].status | string | completed, failed or cancelled. |
products[].error | string | null | Why the product failed, when it did. |
products[].campaign_ads | array | The visuals generated for that product, as campaign ads. Empty when the product failed. |
Errors
| Code | HTTP | Description |
|---|---|---|
VALIDATION_ERROR | 400 | One or more request parameters are invalid. |
UNSUPPORTED_DELIVERABLE | 400 | A master visual asset type is not available on the given platform. |
INVALID_IMAGE | 400 | An image is not a public URL or valid base64. |
NO_ACTIVE_BRAND | 400 | No active brand found for your organization. |
BRAND_NOT_FOUND | 404 | No active brand with this brand_id in your organization. |
UNAUTHORIZED | 401 | Missing or invalid API key. |
PAID_PLAN_REQUIRED | 402 | Scale requires a paid Pixii plan. |
PLAN_LIMIT_REACHED | 402 | More than one product per run requires the Scale plan. |
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 for the full list and how to handle each one.