aplusContent_create_and_publish

Full A+ pipeline in one call: upload the images → create the content document → link the ASINs → submit for approval.

destructiveAmazon Seller (SP-API)sp.uploads_2020-11-01

Every step's result is returned whichever step failed. Amazon SP-API · createUploadDestinationForResource · POST /uploads/2020-11-01/uploadDestinations/{resource} Amazon SP-API · createContentDocument · POST /aplus/2020-11-01/contentDocuments Amazon SP-API · postContentDocumentAsinRelations · POST /aplus/2020-11-01/contentDocuments/{contentReferenceKey}/asins Amazon SP-API · postContentDocumentApprovalSubmission · POST /aplus/2020-11-01/contentDocuments/{contentReferenceKey}/approvalSubmissions Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask.

Call it

In an AI client (MCP)

tools/call
{
  "name": "aplusContent_create_and_publish",
  "arguments": {
    "store": "myStore-US",
    "contentDocument": {},
    "asinSet": []
  }
}

From code (Tool API)

curl -X POST https://api.sellersheetai.com/api/v1/tools/aplusContent_create_and_publish \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","contentDocument":{},"asinSet":[]}'
Early access — the Tool API is open on request, contact us.

Arguments

NameTypeDescription
storerequiredstringthe store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim.
contentDocumentrequiredobjectthe A+ document — required fields name (≤100 chars), contentType, locale, contentModuleList (1–100 modules). contentType: EBC (Seller Central A+) | EMC (Vendor Central). locale: a HYPHENATED IETF tag ('en-US', 'de-DE', 'zh-CN'). A module is {contentModuleType, <camelCase type name>: {…}}, e.g. {"contentModuleType": "STANDARD_HEADER_IMAGE_TEXT", "standardHeaderImageText": {"headline": {"value": "…"}, "block": {"image": {"uploadDestinationId": "https://…/hero.jpg", "altText": "…"}, "headline": {"value": "…"}, "body": {"textList": [{"value": "…"}]}}}} (contentModuleType values: the Body block). Rich text (headline, body) ≤10,000 chars; positional labels (specs, highlights) ≤250; every image needs uploadDestinationId + altText (≤100). Optional enums: decoratorSet[].type STYLE_BOLD | STYLE_ITALIC | STYLE_UNDERLINE | STYLE_LINEBREAK | STYLE_PARAGRAPH | LIST_ORDERED | LIST_UNORDERED | LIST_ITEM (each with offset, length; depth for lists); imagePositionType LEFT | RIGHT (STANDARD_SINGLE_SIDE_IMAGE); overlayColorType DARK | LIGHT (STANDARD_IMAGE_TEXT_OVERLAY). Images: put a URL straight into uploadDestinationId — an Amazon A+ CDN URL (https://m.media-amazon.com/images/S/<id>) is reused as is; any other http(s) URL (cdn.sellersheetai.com, a public Drive link, any host) is downloaded and uploaded to the A+ media library; a raw uploadDestinationId is kept. A missing imageCropSpecification is filled with the full image size.
asinSetrequiredstring[]the ASINs to link, all in the store's marketplace.
submitForApprovalbooleantrue (default) submits after linking; false leaves a DRAFT to review first.Default: true

Result

Every tool answers {notification, data, human_action}; data carries:

  • data.contentReferenceKey — the created document (null when create failed).
  • data.steps — {step: record} in run order — upload_images {status, count, uploads: [{driveUrl, uploadDestinationId | error, status} | {status 'reused', url}]} (only when a slot held a URL); create {status, contentReferenceKey | error}; link_asins {status, asinCount | error}; submit {status | error | status 'skipped', reason} (only when submitForApproval).
  • data.allSucceeded — true only when every attempted step succeeded — otherwise data.steps names the failing one.

Params (Amazon schema; createUploadDestinationForResource)

marketplaceIds*: [string] (max 1)
contentMD5*: string
resource*: string
contentType: string

Params (Amazon schema; createContentDocument)

marketplaceId*: string

Params (Amazon schema; postContentDocumentAsinRelations)

contentReferenceKey*: string
marketplaceId*: string

Params (Amazon schema; postContentDocumentApprovalSubmission)

contentReferenceKey*: string
marketplaceId*: string

Body (Amazon schema; createContentDocument)

contentDocument*: {name* (max 100 chars), contentType*: EBC | EMC, contentSubType, locale* (min 5 chars),
  contentModuleList*: [{contentModuleType*, standardCompanyLogo, standardComparisonTable,
    standardFourImageText, standardFourImageTextQuadrant, standardHeaderImageText, standardImageSidebar,
    standardImageTextOverlay, standardMultipleImageText, standardProductDescription,
    standardSingleImageHighlights, standardSingleImageSpecsDetail, standardSingleSideImage,
    standardTechSpecs, standardText, standardThreeImageText}] (1–100)}
  contentDocument.contentModuleList.contentModuleType: STANDARD_COMPANY_LOGO | STANDARD_COMPARISON_TABLE |
    STANDARD_FOUR_IMAGE_TEXT | STANDARD_FOUR_IMAGE_TEXT_QUADRANT | STANDARD_HEADER_IMAGE_TEXT |
    STANDARD_IMAGE_SIDEBAR | STANDARD_IMAGE_TEXT_OVERLAY | STANDARD_MULTIPLE_IMAGE_TEXT |
    STANDARD_PRODUCT_DESCRIPTION | STANDARD_SINGLE_IMAGE_HIGHLIGHTS | STANDARD_SINGLE_IMAGE_SPECS_DETAIL |
    STANDARD_SINGLE_SIDE_IMAGE | STANDARD_TECH_SPECS | STANDARD_TEXT | STANDARD_THREE_IMAGE_TEXT
  contentDocument.contentModuleList.standardImageTextOverlay.overlayColorType: DARK | LIGHT
  contentDocument.contentModuleList.standardSingleSideImage.imagePositionType: LEFT | RIGHT

Body (Amazon schema; postContentDocumentAsinRelations)

asinSet*: [string] (min 10 chars)

Gotchas

  • A failed image upload stops the pipeline before create; a failed create skips linking and submit; a failed link skips submit. Check aplusContent_searchContentPublishRecords per ASIN first so you do not create a second document for content that already exists.

On this page

Actions

View as Markdown

Ask an assistant

Ask ChatGPTAsk Claude