# Attributes & Publish Queue (https://sellersheetai.com/docs/mcp-api/workflows/listings-attributes)

> Turn flat spreadsheet cells into Amazon-shaped attribute JSON and back, validate, and publish many listings at once from a Publish Queue sheet.



<Callout title="In short">
  Seed a Publish Queue sheet for one or more product types, fill flat cells (or fetch what Amazon already has), then submit. SellerSheet translates each cell to the attribute shape Amazon expects, and back again.
</Callout>

## Step by step [#step-by-step]

<Steps>
  <Step>
    ### Seed the sheet [#seed-the-sheet]

    "Prepare a Publish Queue template for product type LUGGAGE." `listings_prepare_publish_queue_template` bundles everything needed to set up a Publish Queue tab for one or several product types — columns merged across types, required ones first.
  </Step>

  <Step>
    ### Fill it — or start from what is live [#fill-it--or-start-from-what-is-live]

    `listings_fetch_attributes_by_skus` fetches your own listings and flattens their attributes into cells; `listings_fetch_attributes_by_asins` does the same for any ASIN's catalog attributes, and `listings_parse_asin_to_cells` maps one ASIN onto the sheet's columns. `listings_get_attribute_guide` explains an attribute: its format, units and allowed values.
  </Step>

  <Step>
    ### Check the translation [#check-the-translation]

    `listings_build_payload` turns flat values into Amazon's attribute JSON so you can see exactly what will be sent; `listings_parse_payload` does the reverse.
  </Step>

  <Step>
    ### Submit [#submit]

    `listings_submit_items` builds and submits per SKU in one step; `listings_submit_feed` sends a whole batch through Amazon's Feeds API, and `listings_poll_feed_results` reads back what Amazon accepted or rejected.
  </Step>
</Steps>

## Try asking [#try-asking]

> "Prepare a Publish Queue template for product type LUGGAGE."

> "Fetch the current attributes for these 50 ASINs and flatten them into my sheet."

> "Submit the rows I changed."

## Seeding the template, both ways [#seeding-the-template-both-ways]

The same tool and the same arguments — through your AI client, or from your own code.

**MCP** — you name the product types; your agent calls `listings_prepare_publish_queue_template` and writes the template into your sheet with the sheet tools.

<ToolCall tool="listings_prepare_publish_queue_template" args="{ productTypes: [&#x22;LUGGAGE&#x22;] }" />

<Callout type="warn" title="Write access required">
  Submitting items or a feed changes your listings, so the store needs write access (see [Stay in control](/docs/mcp-api/control)). Templates, fetches, guides and payload previews work with read access. A submitted update replaces the listing's attributes with the row, so fetch first and edit from there.
</Callout>

## Tools on this page [#tools-on-this-page]

Pulled from the catalog at build time, each with its own access label.

<ToolList domains="[&#x22;attributes&#x22;]" tools="[&#x22;listings_poll_feed_results&#x22;]" />

## FAQ [#faq]

### Can I check rows before submitting? [#can-i-check-rows-before-submitting]

Yes — `listings_validate_rows` runs Amazon's validation preview on the rows first. See [Create listings](/docs/mcp-api/workflows/listings-create).

### Can I do this in the Google Sheets add-on? [#can-i-do-this-in-the-google-sheets-add-on]

Yes — the add-on's catalog panel runs the same Publish Queue from the sidebar. See the [add-on buttons](/help/sheets/buttons#sellers-catalogs).

### Where do I find which listings need work? [#where-do-i-find-which-listings-need-work]

Start with [View & search listings](/docs/mcp-api/workflows/listings-view).
