Skip to main content
Glama

Apiguru Amazon Data

Products listed by a seller

seller_products
Read-onlyIdempotent

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.01 per call. Unlike seller_profile_batch, seller_id format is not pattern-validated here. metadata.total_pages says how far page goes (48 rows a page). Invalid sort_by, price, product_condition or deal_type is a free 400 that lists the allowed values.

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_idYesRestrict results to one seller's offers (Amazon seller id).
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. 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"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations, it discloses pricing ($0.01 per call), page size (48 rows), output keys (filters_applied, filters_ignored, available_filters), and free 400 errors listing allowed values for invalid filters. It also calls out the seller_id validation difference versus seller_profile_batch, which is useful non-obvious behavior.

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

Conciseness5/5

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

The description is compact, with the core purpose first and high-value caveats (cost, validation, pagination) following in a few sentences. No sentence is redundant with the annotations, and the structure lets an agent scan the key facts quickly.

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 tool, the description plus the detailed schema and output schema covers selection and invocation: cost, error behavior, pagination, and output shape. The annotations already supply the read-only/idempotent safety profile, so nothing critical is missing.

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

Parameters4/5

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

With 100% schema description coverage, the schema already documents all 15 parameters; the description adds semantic grouping by saying they are the same filters as search and that invalid values yield a free 400. This is meaningful context beyond the individual schema entries.

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

Purpose4/5

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

The description opens with 'Products listed by a seller: a storefront search' and immediately establishes the resource and scoped operation. It differentiates from siblings by noting that seller_id is not pattern-validated, unlike seller_profile_batch, though it lacks a direct imperative verb like 'lists' or 'searches'.

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

Usage Guidelines4/5

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

It tells the agent that this is a storefront search taking the same filters as search, giving clear context for when the tool applies. It contrasts seller_id handling with seller_profile_batch but does not explicitly spell out when to choose this over marketplace-wide search.

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.