productPricing_getItemOffersBatch

Get lowest-priced offers for a batch of ASINs in a single request (Product Pricing v0).

readAmazon Seller (SP-API)sp.productPricingV0

Amazon SP-API · getItemOffersBatch · POST /batches/products/pricing/v0/itemOffers More efficient than calling productPricing_getItemOffers repeatedly. Batch up to 20 ASINs.

Call it

In an AI client (MCP)

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

From code (Tool API)

curl -X POST https://api.sellersheetai.com/api/v1/tools/productPricing_getItemOffersBatch \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","requests_":[]}'
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.
requests_requiredobject[]List of up to 20 batch request dicts. Each must include: - uri: str — '/products/pricing/v0/items/{asin}/offers' (fill in ASIN) - method: str — 'GET' - ItemCondition: str — Allowed: New | Used | Collectible | Refurbished | Club - MarketplaceId: str (optional) — defaults to the store's marketplace; pass only to override. - CustomerType: str (optional) — Allowed: Consumer | Business

Result

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

  • notification.type — 'warning' whenever data.failed is non-empty, else 'success'.
  • data.ok — ASINs whose request Amazon accepted (statusCode 200, no errors).
  • data.failed — [{identifier, status, reason}] for every ASIN that failed at the TRANSPORT level — statusCode != 200 (a bogus ASIN 400s here with body.errors [{code: 'InvalidInput', ...}]), a body.errors list, or no response envelope at all (status='NoResponse', including when the whole payload came back empty). Body CONTENT is never judged: a listing with a real Summary and an empty Offers list is a genuine zero-offer answer, not a failure. Note the success body nests the real payload under body.payload. Never read a missing Buy Box price as "no Buy Box" without checking data.failed first.
  • data.responses — list of per-ASIN responses, each with: - request.Asin / request.ItemCondition: the request this entry answers - status.statusCode: 200 means success - body.payload.Summary.BuyBoxPrices: current Buy Box prices - body.payload.Summary.LowestPrices: lowest prices by channel/condition - body.payload.Offers: individual offer details - body.errors: Amazon's error list when this entry failed NOTE the body.payload nesting — reading body.Summary directly is undefined.

Workflow

  • 1. Build requests_ list (up to 20 ASINs per call). 2. Call productPricing_getItemOffersBatch.

Body (Amazon schema): {requests: [ItemOffersRequest]} (1–20), each item

uri*: string
method*: GET | PUT | PATCH | DELETE | POST
headers: object
MarketplaceId*: string
ItemCondition*: New | Used | Collectible | Refurbished | Club
CustomerType: Consumer | Business

On this page

Actions

View as Markdown

Ask an assistant

Ask ChatGPTAsk Claude