listings_submit_feed_legacy

Legacy Create Listing flow: submit flat Create Listing rows via JSON_LISTINGS_FEED or the Listings Items API — new work uses listings_submit_feed (Publish Queue keys).

destructiveAmazon Seller (SP-API)sp.definitionsProductTypes_2020-09-01

Amazon SP-API · getDefinitionsProductType · GET /definitions/2020-09-01/productTypes/{productType} Amazon SP-API · putListingsItem · PUT /listings/2021-08-01/items/{sellerId}/{sku} Amazon SP-API · patchListingsItem · PATCH /listings/2021-08-01/items/{sellerId}/{sku} Amazon SP-API · deleteListingsItem · DELETE /listings/2021-08-01/items/{sellerId}/{sku} Amazon SP-API · createFeedDocument · POST /feeds/2021-06-30/documents Amazon SP-API · createFeed · POST /feeds/2021-06-30/feeds Gate: commit — interactive: restate exactly what will happen, wait for a typed CONFIRM; autopilot: only within the seller's instruction and stated limits; otherwise ask. Accepts flat {header: value} rows — same format as the Create Listing sheet. The server encodes attributes. PATCH-delete rows always use Listings Items API.

Call it

In an AI client (MCP)

tools/call
{
  "name": "listings_submit_feed_legacy",
  "arguments": {
    "store": "myStore-US",
    "rows": []
  }
}

From code (Tool API)

curl -X POST https://api.sellersheetai.com/api/v1/tools/listings_submit_feed_legacy \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","rows":[]}'
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.
rowsrequiredobject[]2D array [[headers], [row1], ...] or list of {header: value} dicts.
configobjectDict from sheet rows 1-2 (keys as in listings_validate_rows); omitted → asin / centimeters / kilograms / liters / count / en_US, so pass it on any non-US store. marketplace_id comes from the store.
modestring'feed' (bulk JSON_LISTINGS_FEED, default) or '1by1' (Listings Items API per row).Default: "feed"
debugbooleantrue returns the built feed as data.feed_json (with data.encode_errors, data.patch_results) without submitting (feed mode only).Default: false

Result

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

  • data.feedId — (feed mode) poll with listings_poll_feed_results.
  • data.submitted / data.failed — (1by1 mode) counts.
  • data.submissionLog — the Submission Log cells for this feed (Action, Result, SKUs in message order, Issues, Feed ID, Raw Response) — append them with write_sheet when the user keeps that tab.
  • data.feedDocumentId — (feed mode) feed document ID.
  • data.rowCount — (feed mode) rows actually written into the feed — LOWER than the rows you sent when some were excluded.
  • data.results — (1by1 mode) per-SKU status list.
  • data.encode_errors — {sku: {field: reason}} for rows that did NOT reach Amazon. A row in the split layout ('attr#n.sub' headers) is refused whole — it is not in the feed and not in rowCount, so fix it and resubmit (listings_build_payload + listings_submit_items for split rows). Other entries are per-attribute encode failures on rows that DID go.
  • data.patch_results — [{sku, status, issues}] for PATCH-delete rows, which always go via Listings Items PATCH rather than the feed.

Params (Amazon schema; getDefinitionsProductType)

productType*: string
sellerId: string
marketplaceIds*: [string]
productTypeVersion: string
requirements: LISTING | LISTING_PRODUCT_ONLY | LISTING_OFFER_ONLY
requirementsEnforced: ENFORCED | NOT_ENFORCED
locale: DEFAULT | ar | ar_AE | de | … | zh_TW (38 values)
parentageLevel: NONE | CHILD | PARENT

Params (Amazon schema; putListingsItem)

sellerId*: string
sku*: string
marketplaceIds*: [string] (max 1)
includedData: identifiers | issues (list)
mode: VALIDATION_PREVIEW
issueLocale: string

Params (Amazon schema; patchListingsItem)

sellerId*: string
sku*: string
… (9 more lines; the Docs link above)

Body (Amazon schema; putListingsItem)

productType*: string
requirements: LISTING | LISTING_PRODUCT_ONLY | LISTING_OFFER_ONLY
attributes*: object

Body (Amazon schema; patchListingsItem)

productType*: string
patches*: [{op*: add | replace | merge | delete, path*, value: [object]}] (min 1)

Body (Amazon schema; createFeedDocument)

contentType*: string

Body (Amazon schema; createFeed)

feedType*: string
marketplaceIds*: [string] (1–25)
inputFeedDocumentId*: string
feedOptions: object

Workflow

  • 1. read_sheet the Create Listing tab — config in rows 1–2, then the header row and data rows. 2. listings_validate_rows — fix all INVALID rows first. 3. Call this tool with the validated rows. 4. listings_poll_feed_results with data.feedId (and the row's SKUs) for per-SKU results.

On this page

Actions

View as Markdown

Ask an assistant

Ask ChatGPTAsk Claude