Skip to main content

Generate Listing Content

POST 

/api/ai/listing-content

Generate listing content for one product on one sales channel using the tenant's configured AI provider. The prompt carries the product's facts (name, identifiers, brand, weight, dimensions, category, and its attributes) plus any source_material you pass, and applies the TARGET channel's own description rules — TikTok Shop: HTML, up to 10,000 characters, 3–5 selling points; Amazon: plain text, up to 2,000; eBay and Shopify: HTML; Walmart, Temu and Faire: plain text — so you do not restate them.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

source_material is up to 10 labelled {label, text} entries (each text up to 8,000 characters): a description live on another channel, a manufacturer page, a supplier sheet. The model reconciles them into one account rather than pasting, prefers the brand's own wording where sources disagree, and explains itself in content.rationale — returned whenever description is requested and non-empty.

description_format (html | plain) and description_max_length (100–20000) override the channel's rule for one call. include_product_attributes (default true) feeds the product's own attributes: short values as facts, long ones (a description already written for another channel) as source material.

fields defaults to all four of title, description, bullet_points, seo_keywords. Only requested fields come back, and empty results are omitted. Nothing is written — apply the content to a draft or attribute yourself.

Returns 422 when AI listing content is disabled for the tenant, when the provider is not configured, or when the model returned no usable content — the message says which. Returns 404 for an unknown product or channel.

Authentication: Requires Bearer token.

Body fields: product_id (required), sales_channel_id (required), sales_channel_category_id, fields[], source_material[] of {label,text}, description_format, description_max_length, include_product_attributes, tone, target_keywords[] (max 25), additional_instructions (max 500), optimize_for_rufus.

Request

Responses

OK

Response Headers
    Content-Type