# listings_prepare_publish_queue_template (https://sellersheetai.com/docs/mcp-api/tools/listings_prepare_publish_queue_template)

> Everything needed to seed a Publish Queue tab for N productTypes in one call: one bundle for a single productType, or ONE merged bundle keyed by the joined names ("TOWEL,HEADPHONES

Access: **READ** · toolset amazon_sp · family sp.catalogItems_2022-04-01

") whose column layout hosts rows of any productType in the set (propertyGroups, properties and required unioned across the schemas). Amazon SP-API · getCatalogItem · GET /catalog/2022-04-01/items/{asin} Amazon SP-API · getDefinitionsProductType · GET /definitions/2020-09-01/productTypes/{productType}

## Call it

MCP tool call:

```json
{
  "name": "listings_prepare_publish_queue_template",
  "arguments": {
    "store": "myStore-US",
    "productTypes": []
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/listings_prepare_publish_queue_template \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","productTypes":[]}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
| `productTypes` | object[] | yes | Amazon productTypes, e.g. ["HEADPHONES", "SHOES"] — one = a single bundle, several = a merged bundle. |
| `referenceAsins` | object |  | optional {productType: asin}; the bundle then carries reference_values seeded from that ASIN's catalog attributes. |
| `locale` | string |  | schema locale (e.g. en_AE); inferred from the store ref if omitted. Allowed: DEFAULT \| ar \| ar_AE \| de \| de_DE \| en \| en_AE \| en_AU \| en_CA \| en_GB \| en_IN \| en_SG \| en_US \| es \| es_ES \| es_MX \| es_US \| fr \| fr_CA \| fr_FR \| it \| it_IT \| ja \| ja_JP \| nl \| nl_NL \| pl \| pl_PL \| pt \| pt_BR \| pt_PT \| sv \| sv_SE \| tr \| tr_TR \| zh \| zh_CN \| zh_TW. Allowed: DEFAULT \| ar \| ar_AE \| de \| de_DE \| en \| en_AE \| en_AU \| en_CA \| en_GB \| en_IN \| en_SG \| en_US \| es \| es_ES \| es_MX \| es_US \| fr \| fr_CA \| fr_FR \| it \| it_IT \| ja \| ja_JP \| nl \| nl_NL \| pl \| pl_PL \| pt \| pt_BR \| pt_PT \| sv \| sv_SE \| tr \| tr_TR \| zh \| zh_CN \| zh_TW. |
| `language_tag` | string |  | the language the language_tag token stands for (en_AE, fr_FR, …); defaults to the marketplace's primary listing locale. |
| `required_first` | boolean |  | true (default) sorts REQUIRED attributes to the front so they get the lowest column letters. |
| `detail` | string |  | 'full' (default) — every column carries guide; 'columns' omits guide, a lighter bundle for an AI that only needs keys, names and types to compose rows. |

## Result

- `data.bundles` — {productType: {columns, ordered_groups, group_end_indices, required, requirements, attr_count, reference_values, source_product_types, requested_product_types}}. columns: [{key, name, required, type, enum, enum_names, several, strict, guide, group}] in sheet order — key is Amazon's own flat-file key (`<attr>[<sel>=<v>]…#<n>.<field>…`), name the display name for row 6 (never an identifier), guide the row-4 guide, type string | number | integer | boolean | date | datetime, several = one cell with one value per line (the `#*` column), strict false only for a several-value enum column. required: the keys that are required. reference_values: {key: cell} in the same grammar. ordered_groups and
- `data.bundles.group_end_indices` — the visual group dividers (product_identity, variations, product_details, images, offer, shipping, safety_and_compliance).
- `data.errors` — {productType: unknown_product_type | schema_unavailable} for a schema that could not be served.

## Params (Amazon schema; getCatalogItem)

- asin*: string marketplaceIds*: [string] includedData: attributes | classifications | dimensions | identifiers | images | productTypes | relationships | salesRanks | summaries | vendorDetails (list) locale: string

## 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

## Workflow

- Seeding a tab: row 5 (hidden) = columns[].key from column F (column E is the attributes_json control), row 4 = columns[].guide, row 6 = columns[].name sized to the name, rows 7+ = data (reference_values as seed), a thick right border at column F + each group_end_indices index. Read the tab first (read_sheet) and append only the keys not already in row 5 at max column + 1 — existing columns are never renamed or moved; always address a column by its row-5 key.