Download visuals
Pack every completed visual Pixii has generated for a product into one zip.
Get everything Pixii has generated for a product as one zip. Pixii finds every session created for the product, collects the completed visuals, and builds a zip with one folder per session.
This endpoint is free. It only reads existing visuals; nothing is generated.
This is an async endpoint. It returns a
job_idimmediately. Use the Jobs API to poll for the result.
Endpoint
POST /v2/api/download_visualsRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | number | Optional | The brand to work in. Take it from Brands. Defaults to your default brand. |
product | object | Required | The product to download for. Pass asin and country_code, or product_id. A Walmart item ID or an Amazon, Walmart or Shopify product page URL in asin names the saved product too. See the product fields. Images are not accepted here. |
compliances | string[] | Optional | Compliance marks for the images. Amazon adds AI-content metadata to images with AI-generated people, New York adds the required visible AI-generated notice to them, EU adds an invisible watermark plus a signed content certificate. Only the marks you pass are applied. Omit it for an unmarked zip. |
The product must already exist in your Pixii account. If you have never generated anything for it, the job fails with PRODUCT_NOT_FOUND; if it exists but has no completed visuals, with NO_VISUALS_FOUND.
Response
A successful request returns 200 with a job id. 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 download_visuals 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 | Always 0. |
remaining_credits | number | Credits remaining on your account. |
Job output
When the job completes, output contains:
| Field | Type | Description |
|---|---|---|
product | object | product_id, asin and country_code of the product. |
session_ids | string[] | The sessions included in the zip, one folder each. |
visual_count | number | How many completed visuals were found. |
zip_url | string | Signed URL of the zip. Minted fresh on every read of the job. |
zip_url_expires_at | string | ISO 8601 expiry of zip_url. |
Errors
| Code | HTTP | Description |
|---|---|---|
VALIDATION_ERROR | 400 | One or more request parameters are invalid. |
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. |
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. |
Job-level failures are reported through the job’s error object: PRODUCT_NOT_FOUND when the product is unknown to your account and NO_VISUALS_FOUND when it has no completed visuals. See the errors reference.