Generate Amazon A+ Content for a given ASIN. Pixii produces a full set of A+ modules — Basic, Premium, or Premium Mobile — ready to drop into Seller Central, along with a single composite preview image for each variant.

> 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/a_plus
```

## 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. |
| `types`                  | `enum[]`   | Required | One or more A+ Content variants to generate. 1–10 unique values. See [content types](/content/api-docs/a-plus/#content-types/index.html) below. |
| `main_image_url`        | `string`   | Optional | URL of the product's main image. Must be a publicly accessible image URL.                        |
| `other_image_urls`      | `string[]` | Optional | Additional product image URLs. Minimum 1 item if provided. Must be publicly accessible image URLs. |
| `user_prompt`           | `string`   | Optional | Optional natural-language guidance for the generation. Cannot be empty if provided.               |

## Content types

The `types` array accepts one or more of:

` A+ Basic Separate Modules` A+ Basic with each module generated as its own standalone image — 30 credits

` A+ Basic Full Image` A+ Basic as one continuous design, sliced into 4 modules — 30 credits

` A+ Basic One Module` A single standalone A+ Basic module — 10 credits

` A+ Premium Separate Modules` A+ Premium with each module generated as its own image — 30 credits

` A+ Premium Full Image (6 modules)` A+ Premium as one continuous design, sliced into 6 modules — 30 credits

` A+ Premium Full Image (4 modules)` A+ Premium as one continuous design, sliced into 4 modules — 30 credits

` A+ Premium One Module` A single standalone A+ Premium module — 10 credits

` A+ Premium Mobile Separate Modules` Mobile-optimized A+ Premium with each module generated as its own image — 30 credits

` A+ Premium Mobile Full Image` Mobile-optimized A+ Premium as one continuous design, sliced into 4 modules — 30 credits

` A+ Premium Mobile One Module` A single standalone mobile A+ Premium module — 10 credits

## Credits

The total `credit_cost` is the sum of the per-type costs for the variants you request. For example, requesting `A+ Basic Separate Modules`, `A+ Premium Full Image (6 modules)`, and `A+ Basic One Module` costs `30 + 30 + 10 = 70` credits. If a specific variant fails to generate, its credits are automatically refunded — see `credits_refunded` on the polled job.

## Result shape

When the job completes, `output.ads` contains one entry per requested type. The shape differs slightly from other Pixii endpoints — A+ exposes per-type metadata and the individual module images alongside the composite preview.

| Field                      | Type                             | Description                                                                                     |
|----------------------------|----------------------------------|-------------------------------------------------------------------------------------------------|
| `ads[].type`              | string \. | The requested A+ variant — one of the [content types](/content/api-docs/a-plus/#content-types/index.html) |
| `ads[].preview`           | string \. | Signed URL for the composite preview image. **Valid for 7 days.** `null` if the variant failed   |
| `ads[].modules`           | string\[\]                      | Signed URLs for each individual A+ module image, in order. Empty if the variant failed          |
| `ads[].error`             | object \| null                    | Error details if this variant failed. `null` on success                                       |
| `ads[].error.code`        | string                            | Job error code — see [Job errors](/content/api-docs/errors#job-errors/index.html)             |
| `ads[].error.message`     | string                            | Human-readable error message                                                                    |

For status, timestamps, and the rest of the polled job envelope, see the [Jobs API](/content/api-docs/jobs/index.html).

## 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.                                  |
| `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 and how to handle each one.
