Creative Strategy
Get the creative strategy for an ASIN, with personas, reviews, needs and positioning, as structured JSON.
Get the creative strategy for a product: who buys it, what they say about it, what they actually need, and how to position it. This is the same analysis Pixii runs before it generates any visuals, returned as structured JSON.
If the product has already been analyzed, the existing strategy is returned. If it has not, Pixii fetches the product and generates one. Pass force_new: true to regenerate even when a strategy already exists. The new one becomes the latest, and later requests return it.
This endpoint costs 5 credits per request. The strategy is free when you request it as part of a Listing Builder job.
This is an async endpoint. It returns a
job_idimmediately. Use the Jobs API to poll for the result.
Endpoint
POST /v1/api/creative_strategyRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
asin | string | Required | Amazon Standard Identification Number. |
country_code | string | Required | Target marketplace. See supported marketplaces below. |
force_new | boolean | Optional | Regenerate the strategy even if one already exists. Defaults to false. Charged at the same 5 credits. |
Supported marketplaces
The country_code field accepts any of the following ISO country codes:
AE AU BE BR CA CN DE EG ES FR GB IE IN IT JP MX NL PL SA SE SG TR UK US ZA
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 Creative Strategy for this endpoint. |
status | string | Initial status. Always pending on submission. |
created_at | string | ISO 8601 timestamp of when the job was created. |
remaining_credits | number | Credits remaining on your account after this request was accepted. |
Job output
When the job completes, output.creative_strategy contains:
| Field | Type | Description |
|---|---|---|
product_details | object | What the product is: facts, category, niche |
customer_personas | object | Who buys it |
customer_personas.segments | array | Named audience segments, each with a name and profile |
customer_personas.alternatives | string | What shoppers buy instead |
customer_personas.usp | string | What makes this product the better choice |
customer_reviews | object | What reviewers say: hesitation, love, hate |
customer_needs | array | Feature-to-benefit ladder for each key feature |
customer_needs[].feature | string | The product feature |
customer_needs[].functional_benefit | string | What it does for the customer |
customer_needs[].emotional_benefit | string | How it makes them feel |
customer_needs[].villain | string | The problem the feature defeats |
customer_needs[].identity_payoff | string | Who the customer becomes by buying it |
strategy | object | targeting, position, the_hook, differentiation, creative_concept |
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 for the full list and how to handle each one.