Skip to main content
Glama

Apiguru Amazon Data

Products listed by a seller

seller_products
Read-onlyIdempotent

Use to list one seller's storefront. Products listed by a seller: a storefront search. Takes the same filters as search -- query, page, sort_by, category_id, min_price / max_price, product_condition, brand, today_deals, deal_type -- and answers with filters_applied, filters_ignored and available_filters like search does. Price: $0.003 per call. A malformed seller_id is a free 400, as on seller_profile_batch. metadata.total_pages counts every page of the result (48 rows a page), but Amazon serves at most 7 pages of one query: metadata.reachable_pages is how far page can go, and when it is less, pagination_note says how to see the rest (min_price/max_price bands or category_id). _links.next is the next page while there is one; a page past the end is a free 400 page_out_of_range. Invalid sort_by, price, product_condition or deal_type is a free 400 that lists the allowed values. No single sort order lists a whole storefront: Amazon's relevance order (the default) can count far fewer products than the store holds and repeats products across pages, and other orders include products it leaves out (measured on one store: relevance 321, NEWEST 1,898; on another, relevance and NEWEST shared 90 of 161 products). Page 1 of a storefront without query carries coverage_note with the recipe: page through sort_by=RELEVANCE and sort_by=NEWEST, split a store larger than 336 products into min_price/max_price bands, dedupe by asin. An empty storefront carries note: Amazon reports 0 products for a seller with no listings on that marketplace and for an id that is not a seller alike, so check it with seller_profile_batch (_links.seller_profile). Rows have the search row shape: offers_count is null unless the card shows a count, and product_brand is null on most storefront cards (Amazon prints no brand line there; product_details has brand_name).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
pageNoResult page, 1-based. metadata.total_pages says how far it goes.
brandNoBrand name as Amazon spells it (case-insensitive), e.g. Samsung.
limitNoHow many the seller's products to return from this page (0 = all of them). A full page is up to 48 rows and about 54 KB, which most clients spill to a file instead of showing inline. The answer carries _truncated with the true count when it trims.
queryNoOptional keywords to search within this seller's storefront.
fieldsNoComma-separated row fields to return instead of the light set, e.g. "asin,product_title,product_price". Rows list what they left out under _omitted_fields.
compactNoReturn light rows: identity, price, rating, badges and one delivery_date, dropping the long delivery prose that repeats itself across three fields. false returns every field the REST API sends (roughly 3x the size).
sort_byNoResult ordering.RELEVANCE
deal_typeNoA specific promotion refinement: today_deals, all_discounts, coupons or buy_more_save_more. available_filters.deal_type lists the ones this marketplace has.
max_priceNoHighest price, in the marketplace currency.
min_priceNoLowest price, in the marketplace currency; decimals such as 19.99 are fine.
seller_idYesAmazon seller id whose storefront to list: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required.
category_idNoAmazon browse node id to restrict to, e.g. 172282 (Electronics on US). Take one from a best_sellers answer's available_subcategories, a product's category_path, or node= in an Amazon URL. Ids differ per marketplace.
today_dealsNoOnly items in Today's Deals, using that marketplace's own refinement. Where a marketplace has none (amazon.fr on 2026-09-08) it is reported under filters_ignored.
product_conditionNoNEW, USED or RENEWED (case-insensitive). Applied with the marketplace's own condition node; where a marketplace does not offer one, the answer's filters_ignored says so and available_filters lists what it does offer.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
successNo
request_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / geo / enum
      Previous value: -[
      -  "US",
      -  "CA",
      -  "DE",
      -  "MX",
      -  "UK",
      -  "FR",
      -  "IT",
      -  "ES",
      -  "AU",
      -  "BR",
      -  "IN",
      -  "JP",
      -  "NL",
      -  "AE",
      -  "PL",
      -  "SA",
      -  "SG",
      -  "SE",
      -  "TR",
      -  "BE"
      -]New value: +[
      +  "US",
      +  "CA",
      +  "DE",
      +  "MX",
      +  "UK",
      +  "FR",
      +  "IT",
      +  "ES",
      +  "AU",
      +  "BR",
      +  "IN",
      +  "JP",
      +  "NL",
      +  "AE",
      +  "PL",
      +  "SA",
      +  "SG",
      +  "SE",
      +  "TR",
      +  "BE",
      +  "IE",
      +  "ZA",
      +  "EG"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / seller_id / description
      Previous value: -"Restrict results to one seller's offers (Amazon seller id)."New value: +"Amazon seller id whose storefront to list: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required."
    • addedInput schema / properties / seller_id / pattern
      Added value: +"^[Aa][A-Za-z0-9]{9,20}$"
  3. Changed11 schema fields changed
    • addedInput schema / properties / brand
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Brand name as Amazon spells it (case-insensitive), e.g. Samsung.",
      +  "title": "Brand"
      +}
    • addedInput schema / properties / category_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Amazon browse node id to restrict to, e.g. 172282 (Electronics on US). Take one from a best_sellers answer's available_subcategories, a product's category_path, or node= in an Amazon URL. Ids differ per marketplace.",
      +  "title": "Category Id"
      +}
    • addedInput schema / properties / deal_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "today_deals",
      +        "all_discounts",
      +        "coupons",
      +        "buy_more_save_more"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "A specific promotion refinement: today_deals, all_discounts, coupons or buy_more_save_more. available_filters.deal_type lists the ones this marketplace has.",
      +  "title": "Deal Type"
      +}
    • addedInput schema / properties / max_price
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Highest price, in the marketplace currency.",
      +  "title": "Max Price"
      +}
    • addedInput schema / properties / min_price
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Lowest price, in the marketplace currency; decimals such as 19.99 are fine.",
      +  "title": "Min Price"
      +}
    • changedInput schema / properties / page / description
      Previous value: -"Result page, 1-based."New value: +"Result page, 1-based. metadata.total_pages says how far it goes."
    • addedInput schema / properties / product_condition
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "NEW",
      +        "USED",
      +        "RENEWED"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "NEW, USED or RENEWED (case-insensitive). Applied with the marketplace's own condition node; where a marketplace does not offer one, the answer's filters_ignored says so and available_filters lists what it does offer.",
      +  "title": "Product Condition"
      +}
    • addedInput schema / properties / query
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional keywords to search within this seller's storefront.",
      +  "title": "Query"
      +}
    • changedInput schema / properties / seller_id / description
      Previous value: -"Amazon seller ID. Required."New value: +"Restrict results to one seller's offers (Amazon seller id)."
    • addedInput schema / properties / sort_by
      Added value: +{
      +  "default": "RELEVANCE",
      +  "description": "Result ordering.",
      +  "enum": [
      +    "RELEVANCE",
      +    "BEST_SELLERS",
      +    "LOW_HIGH_PRICE",
      +    "HIGH_LOW_PRICE",
      +    "REVIEWS",
      +    "NEWEST"
      +  ],
      +  "title": "Sort By",
      +  "type": "string"
      +}
    • addedInput schema / properties / today_deals
      Added value: +{
      +  "default": false,
      +  "description": "Only items in Today's Deals, using that marketplace's own refinement. Where a marketplace has none (amazon.fr on 2026-09-08) it is reported under filters_ignored.",
      +  "title": "Today Deals",
      +  "type": "boolean"
      +}
  4. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent), and the description adds substantial behavioral detail beyond that: the $0.003 cost and free 400 errors, the 7-page Amazon cap, metadata.reachable_pages/pagination_note, _links.next, and the measured relevance-vs-NEWEST coverage discrepancy. These are exactly the runtime behaviors an agent cannot infer from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical facts are front-loaded (what the tool does, the pagination cap, the empty-storefront pitfall), but the description is very long and dense. Several clauses could be tightened without losing meaning, and the opening repeats the title almost verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter, read-only tool with an output schema, the description covers the remaining gaps: cost, error semantics, pagination limits, coverage recipe, empty-storefront disambiguation, and null-field caveats. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines every parameter, including enums and defaults. The description adds useful context about the filters_applied/filters_ignored/available_filters response and the coverage recipe, but it does not deepen parameter semantics beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'list one seller's storefront.' It also distinguishes itself from the sibling search tool by framing itself as 'a storefront search' that takes the same filters, so an agent can immediately tell it apart from general search or from product_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use this tool (to list one seller's storefront) and gives the critical alternative for the ambiguous case: an empty storefront looks identical to a non-seller id, so verify with seller_profile_batch. It also routes pagination beyond the 7-page Amazon limit to min_price/max_price bands or category_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources