Apiguru Amazon Data
Server Details
Live Amazon product, review, search, deal, offer/stock and seller data across 23 marketplaces.
- Status
- Healthy
- Uptime
- 100.0% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Server Listing
- apiguru-amazon-data
TDQS
Scored across 12 tools
Each tool targets a distinct resource and intent, and descriptions explicitly cross-reference neighbors with 'not for' guidance (e.g. product_details vs product_details_batch, search vs best_sellers, offers_stock vs product_details). Overlapping-feeling product-listing tools (search, seller_products, best_sellers, deals) are clearly separated by purpose and scope.
All names are consistent snake_case with a predictable resource-oriented pattern, and the _batch suffix is applied uniformly (product_details_batch, seller_profile_batch). Minor deviation: a couple of verb-first names (list_capabilities, send_feedback) sit alongside noun-only names (search, deals), but nothing confusing.
Twelve tools is well-scoped for an Amazon data API, with each tool earning its place (single vs batch variants, distinct seller vs product vs review surfaces). No redundant or filler tools.
Broad lifecycle coverage: discovery (search, best_sellers, deals), product detail and enrichment (product_details, batch, reviews), seller surfaces (seller_products, seller_profile_batch, seller_reviews), plus offers/stock and utility tools. Minor gaps like a UPC/GTIN lookup or category-tree enumeration exist, but core workflows are covered.
Available Tools
12 toolsbest_sellersBest-seller rankings for a categoryARead-onlyIdempotentInspect
Use for what sells best in a department right now. The rank is Amazon's, not a sales figure. Best-seller rankings for a department of one marketplace, 50 per page. Every answer carries the department it resolved to and how (category_resolution: by slug, name or a fragment of a name, with a hint when a fragment such as 'shoes' landed on the whole 'Clothing, Shoes & Jewelry' department, or 'subcategory' when a word such as 'camera' named a subcategory), available_categories (that marketplace's departments with slugs; MCP: with compact=false) and available_subcategories (the children of the node shown, with the ids subcategory_code takes). On amazon.com subcategory_code also takes any browse node id at any depth, or a name resolved under the department ("women's shoes", "mules & clogs"); category.subcategory_path gives the node's full path and category.heading the page's own title line. Price: $0.003 per call. No required parameters - calling it bare returns US appliances page 1. category accepts a slug, a display name, one of the older US department names, or a unique fragment; category_resolution.via says which, and a fragment match adds a hint naming the subcategories that carry the word, with ids. On amazon.com the whole browse tree is known: subcategory_code takes any node id or a name at any depth, subcategory_name and subcategory_path are filled without a fetch, and available_subcategories lists the node's real children (empty on a leaf). Other marketplaces name only what their navigation showed. page is capped at 5 (a 400 beyond, not a 500). rank is the position within the requested list on this page. Rows are the same for every marketplace; only the department vocabulary differs, and the answer carries it.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| page | No | Result page, 1-based, 50 rows each; Amazon's lists stop at page 5. | |
| limit | No | How many ranked 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. | |
| fields | No | Comma-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. | |
| compact | No | Return 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). | |
| category | No | Best-seller department, by slug or by name as Amazon shows it for that marketplace (case-insensitive; a unique fragment works, and the answer's category_resolution says when a fragment was used -- 'shoes' is the whole 'Clothing, Shoes & Jewelry' department, and the hint then lists the Shoes subcategories with their ids). Departments and their slugs differ per marketplace: amazon.com has electronics, amazon.de has ce-de (Electronics & Photo). A word that names a subcategory works too: category=camera on amazon.es is Electronics > Camera & Photo (category_resolution.via says 'subcategory'; several equally good matches are a free 400 listing each as category + subcategory_code). REST answers list the marketplace's departments under available_categories (the MCP tool with compact=false); an unknown name is a free 400 listing them. | appliances |
| subcategory_code | No | Browse node id under `category`: one from available_subcategories of a previous answer, or on amazon.com any node id at any depth (679410011 is Women > Shoes > Mules & Clogs) or a name resolved under the department ("women's shoes", "mens boots", "mules & clogs"). A name that fits two nodes equally (Men > Shoes > Boots and Women > Shoes > Boots) is a free 400 listing both ids with their paths. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| page | No | |
| success | No | |
| category | No | |
| max_page | No | |
| page_size | No | |
| request_id | No | |
| category_resolution | No | |
| available_categories | No | |
| available_subcategories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial extra context: per-call cost ($0.003), the page cap of 5 that yields a 400 rather than a 500, free 400 error semantics for ambiguous or unknown names, and truncation/omission behavior (_truncated, _omitted_fields). This is behavior beyond what the annotations or schema convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The usage constraint is front-loaded, but the body is bloated and repeats itself – the amazon.com 'any browse node id at any depth / name resolved under the department' rule appears twice, and the category_resolution/available_categories explanation is restated in both description and per-parameter text. Dense, but not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't detail return values, and it doesn't overreach. Given the 7 parameters, cross-marketplace vocabulary complexity, and pricing, the definition supplies everything an agent needs to call it correctly, including defaults, error behavior, and resolution semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds real meaning: it explains how fragments resolve (e.g. 'shoes' landing on the whole 'Clothing, Shoes & Jewelry' department), that amazon.com accepts any browse node id at any depth or a name, the subcategory ambiguity 400 behavior, and the default bare-call result. This goes well past restating the parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource – 'Best-seller rankings for a department of one marketplace, 50 per page' – and immediately scopes it with 'The rank is Amazon's, not a sales figure.' An agent can distinguish this from sibling tools like search, deals, or product_details without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit usage directive: 'Use for what sells best in a department right now.' It also explains the category-resolution paths and error fallbacks (free 400s listing alternatives). However, it never names or excludes a sibling tool (e.g. use search instead for keyword queries), so routing between tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dealsCurrent Amazon deals with filtersARead-onlyIdempotentInspect
Use for items currently promoted in Amazon's deals feed. Not for one product's price (product_details); for a brand by name use search with brand= and today_deals=true. Returns the current Amazon deals feed: ASIN, title, deal price, list price, discount, deal badge, start/end time and product links. Filter by department (categories), brand id (brands), rating cut-off, price bounds, minimum discount and Prime program. Every answer carries available_filters (the category and brand ids this marketplace accepts, with names), filters_applied / filters_ignored (what took effect) and next_offset (the next page, null when the feed ends). Price: $0.003 per call. Filters are by id: categories takes a department id or name, brands takes brand ids only; available_filters in every answer lists both with names, and filters_applied / filters_ignored report what Amazon honoured. A page is 30 rows; page with offset=next_offset (null when exhausted); total_count caps at 500. min_price, max_price, min_discount and max_discount are applied to the rows after retrieval, scanning up to 3 feed pages per call, so a page can hold fewer than 30 rows and total_count does not reflect them. An empty answer carries a hint saying why. Deal prices expire: check deal_ends_at. The older price_range and discount_range parameters are still accepted, as buckets (1-5 = under 25 / 25-50 / 50-100 / 100-200 / 200 and up; 1-4 = 10 / 25 / 50 / 70 percent off or more) or as bands such as 25-50 and 70+.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| limit | No | How many deals to return from this page (0 = all of them). A full page is 30 rows and roughly 35 KB with every field, which most clients spill to a file instead of showing inline. The answer carries _truncated with the true count when it trims. | |
| brands | No | Comma-separated brand ids, e.g. 46655 for Samsung on US. Take them from brand_id on any deals row or from available_filters.brands (the brands present in the current result). Names resolve only when this marketplace has already shown that brand; for a brand by name use /search with brand=<name> and today_deals=true instead. | |
| fields | No | Comma-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. | |
| offset | No | Row to start at. A page is 30 rows; pass the previous answer's next_offset for the next page. | |
| compact | No | Return light rows: identity, prices, discount, badge, end time, links, brand_id and department_ids, dropping the image arrays. false returns every field the REST API sends. | |
| max_price | No | Highest deal price to return, in the marketplace currency. | |
| min_price | No | Lowest deal price to return, in the marketplace currency. Applied to the fetched rows; see notes. | |
| categories | No | Department to restrict to: its id from available_filters.categories, or its name as Amazon shows it for that marketplace (case-insensitive; a unique fragment such as "electronics" works). US departments: Amazon Devices & Accessories, Appliances, Arts Crafts & Sewing, Audible Books & Originals, Automotive, Baby Products, Beauty & Personal Care, Books, CDs & Vinyl, Cell Phones & Accessories, Clothing Shoes & Jewelry, Collectibles & Fine Art, Electronics, Everything Else, Grocery & Gourmet Food, Handmade Products, Health & Household, Home & Kitchen, Industrial & Scientific, Kindle Store, Movies & TV, Musical Instruments, Office Products, Patio Lawn & Garden, Pet Supplies, Software, Sports & Outdoors, Tools & Home Improvement, Toys & Games, Video Games. Other marketplaces use their own localised names -- read them from available_filters.categories of any deals answer for that geo. An unknown name is a free 400 listing the valid names. | |
| max_discount | No | Largest discount percentage to return. | |
| min_discount | No | Smallest discount percentage to return, e.g. 50 for half price or better. | |
| prime_exclusive | No | Only deals in Amazon's Prime Exclusive program. | |
| prime_early_access | No | Only Prime Early Access deals. A marketplace lists the programs it is running under available_filters.prime_programs; when Early Access is not running the answer is empty with a hint saying so. | |
| min_product_star_rating | No | Amazon's deals feed offers one rating cut-off: 4 = four stars and up. ALL or omitted = no cut-off. Other values are rejected with a free 400. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deals | No | |
| success | No | |
| request_id | No | |
| amazon_request_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond by disclosing per-call cost, the post-retrieval filtering quirk (min_price/max_discount applied after fetch across up to 3 pages, so pages can hold fewer than 30 rows and total_count ignores them), the 500 total_count cap, hint behavior on empty answers, and deal expiry via deal_ends_at. Slightly diluted by restating the available_filters/filters_applied behavior twice, but the disclosure load is high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose then routing, then return shape, then filtering caveats. Efficient overall, but the middle section restates the available_filters / filters_applied / filters_ignored contract twice with near-identical wording, which is wasted space in an otherwise dense definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description only needs to cover gaps, and it does: pagination via next_offset, cost, truncation, the 500-row ceiling, empty-result hints, and the post-retrieval filter semantics that materially change what a caller sees. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds real meaning: filters are by id, categories accepts id or case-insensitive name (with a free 400 on unknown names), brands accepts ids only, and inner- vs post-retrieval filtering is explained. It also documents the legacy price_range/discount_range bucket semantics that the schema does not carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('items currently promoted in Amazon's deals feed') and immediately distinguishes itself from two siblings by name, product_details and search. An agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit exclusions with the alternative to use instead: 'Not for one product's price (product_details); for a brand by name use search with brand= and today_deals=true.' Also states the correct mechanism for brand-ID lookups and points to available_filters for valid ids.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capabilitiesList endpoints, prices and marketplaces (free)ARead-onlyIdempotentInspect
List every Apiguru endpoint with its price, required parameters and supported marketplaces, plus your current access mode, cache and session budget. Free: answers locally with no network request and no charge. Call this before paid tools if you need to plan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by stating it is free, answers locally with no network request, and avoids any charge, which goes beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds value. It efficiently conveys what the tool lists, that it is free and local, and when to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, no return-format explanation is needed, and the zero-parameter schema leaves no input ambiguity. The description covers purpose, cost behavior, local execution, and usage timing, making it fully sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description carries no parameter burden; the baseline of 4 applies. The description does not need to explain input semantics since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists every Apiguru endpoint with price, required parameters, and supported marketplaces, making its purpose unmistakable. It also distinguishes itself from the sibling tools by being a free, meta-level capability listing rather than a data retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises calling this tool before paid tools when planning is needed, giving clear usage context. It does not enumerate when-not-to-use cases or name alternative tools, but the guidance is sufficiently clear for an agent to choose it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offers_stockLive offers and inventory for up to 10 ASINsARead-onlyIdempotentInspect
Use to compare sellers' current offers and see who holds the buy box, and, with check_inventory, how many units a buyer can add to the cart now. The stock number is not a sales estimate. Not for the listing's own details (product_details). Returns the current offer list per ASIN (seller, price, condition, buy-box winner) and, optionally, the actual purchasable stock quantity. Price: $0.0045 per item (max 10). Billed per lookup, which is more than one per ASIN when check_inventory is true. offers_count=winner returns only the offer flagged is_buybox_winner (offers_total keeps the full count); it used to scope only the inventory check and return every offer. /scrape is a legacy alias for the same handler. When Amazon will not return the offer list for an ASIN, the result carries source=product_page: the featured (buy-box) offer read from the product page, offers_on_amazon (how many offers Amazon says exist) and a note; other sellers' offers and stock are then not included. With check_inventory, a cart check that cannot read a quantity is retried once on another session; one that still fails says so on the offer, inventory_response {"error": "cart check failed", "code": "cart_check_failed", "retryable": true}, is not billed, and never reads as a quantity of 0. Each offer carries ships_from (the "Ships from" name: Amazon for FBA, else the seller), delivery_message (the offer's own delivery promise, e.g. "FREE delivery Friday, October 16 on orders shipped by Amazon over $35") and delivery_message_secondary (the "Or fastest delivery ..." line), null when the offer shows none. delivery is the same value as ships_from, kept for existing integrations; it never held delivery information. A row for an ASIN that could not be answered carries error, code, http_status, billed, retryable and next_step, like a top-level error: upstream_unavailable (not billed, retry that ASIN), no_offers ("No offers found": the offer list holds no offer that can be bought as is -- customizable listings have none; billed like a 404) or asin_redirected (Amazon answers the ASIN with another listing's offers; billed like a 404). On agent.apiguru.app the answer also carries success and _links (self, and details_url per row); billable_requests_count is there on your own key only.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| asins | Yes | Comma-separated ASIN list, maximum 10. Each must be 10 uppercase alphanumeric characters; malformed entries are rejected with 400. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise. | |
| condition | No | Comma-separated condition filter: ALL, NEW, USED_LIKE_NEW, USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE (case-insensitive). Omit for every offer. An unknown value is a free 400 listing the allowed ones; it used to be silently treated as ALL. | |
| offers_count | No | 'all' for every offer (default), 'winner' for the buy-box offer only, or a specific alphanumeric Offer ID. Every offer carries is_buybox_winner; with 'winner' the per-ASIN data holds that one offer and offers_total says how many exist. An ASIN with no featured offer answers an empty list with an explanatory error. The response echoes filters_applied. | all |
| check_inventory | No | Add each offer's purchasable stock quantity (`inventory_response`), read with a cart check. Slower, and each check that reads a quantity is billed, so leave off unless you need the number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| request_id | No | |
| country_code | No | |
| response_time | No | |
| filters_applied | No | |
| amazon_request_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, non-destructive), and the description layers on the costly specifics: pricing ($0.0045/item, billed per lookup, multiplied by check_inventory), retry/billing rules for failed cart checks, the product_page fallback when Amazon withholds the offer list, per-ASIN error codes and their billing treatment, and the /scrape legacy alias. This is exactly the extra context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and cost are front-loaded, but the remainder is a dense unbroken block mixing output-field semantics, error taxonomy, deprecation history and billing minutiae. Most sentences carry real information, yet the lack of paragraphing/headers makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, multi-marketplace, billable lookup with complex failure modes, the description covers fallbacks, error codes, billing edge cases and result-field meaning (ships_from vs delivery, inventory_response shape). Even though an output schema exists, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 and the schema already defines geo, asins, condition, offers_count and check_inventory. The description mostly restates those semantics; it adds marginal value via the offers_count=winner behavior change and the per-check billing note, but not enough to lift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: compare sellers' current offers and identify the buy-box winner, optionally with purchasable stock. It explicitly distinguishes itself from sibling product_details ("Not for the listing's own details"), so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use it (comparing offers, buy box, stock), when not to (listing details → product_details), and gives a conditional for the expensive path (check_inventory "leave off unless you need the number"). Alternatives and exclusions are both explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_detailsFull product detail for a single ASINARead-onlyIdempotentInspect
Use for one product's current listing. Not for several ASINs (product_details_batch), seller offers or stock (offers_stock), or review text (product_reviews). Fetches the complete product record for one ASIN on one marketplace: title, price, star rating, rating count, images, description, feature bullets, variations and category. Price: $0.003 per call. 404 means the ASIN is absent from that marketplace and IS billed. 503 is a temporary failure on our side and is NOT billed - retry. Bullet points and specs are what Amazon shows for the listing; on multi-variant listings they can describe the product family rather than the exact variant. A null field means Amazon did not show it. Keys of product_information, tech_specs and the other specification tables are trimmed: Amazon prints some rows twice, once with a trailing space ("Package Dimensions "), and the copies are merged under the clean name; when they differ the listing's own value wins (the second copy of "ASIN" on a variant often names the parent).
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| asin | Yes | Single Amazon ASIN, 10 uppercase alphanumeric characters. Exactly one - comma-separated lists are rejected; use product_details_batch for many. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise. | |
| fields | No | Comma-separated top-level fields to return instead of the compact set, e.g. "tech_specs,product_information". Any response lists what it left out under _omitted_fields. | |
| compact | No | Return the compact record (about 4 KB: identity, price, rating, availability, bullets, category, offer, buy box). false returns the full record (about 75 KB, includes from_manufacturer, tech_specs, product_information, product_reviews). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| success | No | |
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/idempotent safety profile, but the description adds a whole layer the annotations cannot: per-call cost, that a 404 IS billed while a 503 is NOT and should be retried, that null means Amazon omitted the field, and that specification-table keys are trimmed/merged with the listing's own value winning. This is exactly the behavioral context an agent needs beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the routing sentence and then the payload description, so the most decision-relevant content comes first. It runs long and the final sentence about trimmed keys is dense, but nearly every clause carries diagnostic value rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the remaining gaps: cost, error/billing semantics, null handling and key-trimming quirks. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so geo, asin, fields and compact are already documented in the schema; the description adds little parameter-specific syntax beyond echoing single-ASIN semantics. Baseline 3 applies when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/scope ('Fetches the complete product record for one ASIN on one marketplace') and enumerates the returned fields. It also names the exact siblings it is NOT for (product_details_batch, offers_stock, product_reviews), so the agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when not to use it and names each alternative with the disambiguating condition (batch for several ASINs, offers_stock for seller offers/stock, product_reviews for review text). It stops short of describing positive selection conditions or prerequisite workflow, but the exclusion routing is very strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_details_batchProduct detail for up to 20 ASINs in one callARead-onlyIdempotentInspect
Use to enrich a list of ASINs in one call; compare the ASINs in results with the ones you sent. Batch variant of product_details. Accepts a comma-separated ASIN list, deduplicates it, and fetches all of them concurrently. Far cheaper and faster than N single calls. Price: $0.0024 per item (max 20). Billed per ASIN processed, including ones that come back not-found. More than 20 ASINs returns 413. Bullet points and specs are what Amazon shows for the listing; on multi-variant listings they can describe the product family rather than the exact variant. A null field means Amazon did not show it. ASINs Amazon has no record for on that marketplace are listed in not_returned (billed, like a not-found product_details call; retrying will not help). The batch record comes from Amazon's app, not the product page: price, rating, availability, images, bullets and variants, but no best-seller ranks, no category path and no merchant (seller) id. For those call product_details per ASIN. On an API key both cost one request per ASIN, so the batch saves calls and time, not money; keyless (x402) it is also cheaper per item.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| asins | Yes | Comma-separated ASIN list, maximum 20 after de-duplication. Each must be 10 uppercase alphanumeric characters. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise. | |
| fields | No | Comma-separated top-level fields to return instead of the compact set, e.g. "tech_specs,product_information". Any response lists what it left out under _omitted_fields. | |
| compact | No | Return the compact record (about 4 KB: identity, price, rating, availability, bullets, category, offer, buy box). false returns the full record (about 75 KB, includes from_manufacturer, tech_specs, product_information, product_reviews). |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| request_id | No | |
| country_code | No | |
| response_time | No | |
| amazon_request_count | No | |
| billable_requests_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, non-destructive), and the description adds substantial context they cannot: per-item pricing and billing on not-found ASINs, the 20-item/413 limit, dedup and concurrency behavior, and data provenance (app-sourced record lacking best-seller ranks, category path, merchant id). It also explains null semantics and that not_returned items are billed and unretryable, which is exactly the kind of behavior an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most important information (purpose, batch advantage, limits, cost) is front-loaded, and nearly every sentence adds operational value. There is mild redundancy: the not-returned/billing point is restated once in the results sentence and again in the not_returned sentence, which could be consolidated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return shape, yet it still covers edge cases an agent must anticipate: 413 on >20 ASINs, billed not-found results, multi-variant listing caveats, and provenance gaps. Nothing needed to invoke or interpret a batch call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (geo, asins, fields, compact) are already documented, including URL handling and de-dup rules. The description reinforces dedup and ASIN-list handling but adds little beyond the schema, and never mentions the compact/fields toggles, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('enrich a list of ASINs in one call') and explicitly positions itself as the 'batch variant of product_details', so it is instantly distinguishable from its sibling. The title and first sentence together pin down scope (up to 20 ASINs) and the core action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use it versus the alternative ('Far cheaper and faster than N single calls'; 'For those call product_details per ASIN') and even qualifies the economics by auth mode ('On an API key both cost one request per ASIN... keyless (x402) it is also cheaper per item'). The guidance is unusually explicit about the tradeoff conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_reviewsCustomer reviews for a single ASINARead-onlyIdempotentInspect
Use for what customers say about one product. Not for its full review history (Amazon serves full and star-filtered review lists only to signed-in accounts) or for seller feedback (seller_reviews). Returns the overall rating, rating count, review_histogram (percent of all ratings per star), Amazon's 'customers say' AI summary where that marketplace shows one, and the reviews on the product page (typically up to 8 from this marketplace and 5 from other countries), each with rating, review_date, review_country, from_this_marketplace, verified flag and helpful_votes; from_rating/to_rating keep a star window. Price: $0.003 per call. Same 404-billed / 503-not-billed semantics as product_details. No paging or sort: the reviews are those on the product page; review_coverage says how many and from where. from_rating/to_rating filter them. review_histogram (here and on product_details) gives the share of every rating. customers_say is null where Amazon shows no summary (several marketplaces never do); customers_say_note then says so.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| asin | Yes | Single Amazon ASIN, 10 uppercase alphanumeric characters. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise. | |
| to_rating | No | Highest star rating to include, 1-5. from_rating=1&to_rating=3 keeps the critical ones among them. | |
| from_rating | No | Lowest star rating to include, 1-5. Filters the reviews the product page shows (see review_coverage). | |
| max_reviews | No | Cap on individual reviews returned (0 = all). The rating summary, review_histogram and customers_say are always returned; _reviews_total is the number of reviews on the product page (not all reviews; see review_coverage). |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| success | No | |
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/idempotent safety, but the description adds substantial behavior beyond them: per-call pricing ($0.003), 404-billed vs 503-not-billed semantics, absence of paging/sorting, and the null behavior of customers_say with the customers_say_note fallback. These are exactly the operational facts an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use statement and exclusions, which is good, but the body is a dense run-on paragraph that repeats itself (review_histogram and from_rating/to_rating are each explained twice, review_coverage referenced multiple times). It is informative but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description usefully characterizes the return shape (rating, histogram, customers_say, per-review fields and coverage limits) and the filtering semantics, leaving nothing material for an agent to guess when deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: from_rating/to_rating define a star window over the product-page reviews, max_reviews=0 means all while summary fields are always returned, and a URL in the asin slot can set the marketplace. That is genuine value over the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific use statement ('what customers say about one product') tied to a single ASIN, and explicitly differentiates from siblings: seller feedback -> seller_reviews, full review history -> not available. An agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both when-to-use and when-not-to-use, naming seller_reviews as the alternative and explaining why full/star-filtered review histories are unavailable (signed-in-only). It also clarifies the relationship to product_details (shared review_histogram) and the no-paging/no-sort constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch Amazon products by keywordARead-onlyIdempotentInspect
Use to find products by keyword and filters. Rows are result snippets; for the authoritative record of one ASIN call product_details. Search Amazon products by keyword. Filters: page, sort_by, category_id (browse node), min_price / max_price (decimals), product_condition (NEW / USED / RENEWED), brand, seller_id, today_deals and deal_type (coupons, all_discounts, buy_more_save_more). Every answer carries filters_applied, filters_ignored (with the reason) and available_filters for that marketplace. Price: $0.003 per call. Blank values and the literal string 'null' are treated as unset. Invalid page, sort_by, price, product_condition or deal_type is a free 400 naming the parameter and the allowed values. Condition and deal refinements are per marketplace; a marketplace that lacks one gets the unfiltered feed plus an entry under filters_ignored, never a silent empty page. product_num_ratings is an integer; offers_count is the "N offers" count a result card shows, an integer, and null when the card shows none (most cards; it used to default to 1); product_brand is the brand line Amazon prints above some titles (fashion and many branded listings) and null on cards without one -- product_details has brand_name for every ASIN; product_star_rating, product_price and product_original_price are decimal strings; a null field means Amazon did not show it. is_prime is true when the result carries a Prime badge or its delivery line offers Prime delivery. metadata.reachable_pages says how far page can go: Amazon serves at most 7 pages of a query even when metadata.total_pages counts more (then pagination_note says how to split the query). _links.next is the next page while there is one; a page past the end is a free 400 page_out_of_range. A full page is up to 48 results and about 54 KB; the tool returns the first 10 as light rows by default and the answer carries _truncated, _omitted_fields, _projection and _notes. filters_applied echoes the effective sort_by (RELEVANCE when none was sent). A BEST_SELLERS ordering is Amazon's query-scoped popularity, not a category rank: a row's badges / is_best_seller are what the result card showed for this query, and an ASIN that is #1 in its subcategory can carry no badge here while product_details reports best_seller=true with the rank. For a rank claim, use product_details or best_sellers. An empty products list is served as success only when Amazon itself reports 0 results (metadata.total is 0 and hint says so). Anything else that is not a usable result is an unbilled, retryable 503 with code upstream_unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| page | No | Result page, 1-based. metadata.total_pages says how far it goes. | |
| brand | No | Brand name as Amazon spells it (case-insensitive), e.g. Samsung. | |
| limit | No | How many search results 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. | |
| query | Yes | Search keywords. Required and must be non-empty. | |
| fields | No | Comma-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. | |
| compact | No | Return 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_by | No | Result ordering. | RELEVANCE |
| deal_type | No | A specific promotion refinement: today_deals, all_discounts, coupons or buy_more_save_more. available_filters.deal_type lists the ones this marketplace has. | |
| max_price | No | Highest price, in the marketplace currency. | |
| min_price | No | Lowest price, in the marketplace currency; decimals such as 19.99 are fine. | |
| seller_id | No | Restrict results to one seller's offers: an Amazon seller id, 'A' followed by 9-20 letters and digits (e.g. A2A1RNLLUK3HYA). | |
| category_id | No | 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. | |
| today_deals | No | 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. | |
| product_condition | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | No | |
| metadata | No | |
| products | No | |
| request_id | No | |
| filters_applied | No | |
| filters_ignored | No | |
| available_filters | No | |
| amazon_request_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds substantial non-structured context: $0.003 per call, free 400s for invalid params, unbilled retryable 503 on upstream failure, the 7-page cap even when total_pages counts more, per-marketplace refinement gaps surfaced via filters_ignored, and when an empty result is legitimate. This is far beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and filtering are front-loaded well, but the block is extremely dense and internally repetitive: filters_ignored is explained three times, the free 400 twice, and the marketplace-refinement caveat twice. Most sentences carry real information, but the redundancy and sheer length cost it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, open-world search tool with an output schema, the description covers billing, error taxonomies, truncation/projection fields, pagination limits and result-field nullability. Nothing an agent needs to call it correctly, or to interpret a surprising response, is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics the schema lacks: BEST_SELLERS is query-scoped popularity not a category rank, sort_by is echoed in filters_applied, condition/deal_type are per-marketplace refinements, and blank/'null' strings are treated as unset. That clears the baseline but does not re-document every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('find products by keyword and filters') and immediately distinguishes the tool from siblings: 'Rows are result snippets; for the authoritative record of one ASIN call product_details.' An agent can tell this apart from product_details, best_sellers and deals without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Routes explicitly: use product_details for a single authoritative ASIN record, and 'For a rank claim, use product_details or best_sellers.' It also states the condition that selects this tool (keyword/filter discovery) versus those alternatives, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seller_productsProducts listed by a sellerARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| page | No | Result page, 1-based. metadata.total_pages says how far it goes. | |
| brand | No | Brand name as Amazon spells it (case-insensitive), e.g. Samsung. | |
| limit | No | How 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. | |
| query | No | Optional keywords to search within this seller's storefront. | |
| fields | No | Comma-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. | |
| compact | No | Return 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_by | No | Result ordering. | RELEVANCE |
| deal_type | No | A specific promotion refinement: today_deals, all_discounts, coupons or buy_more_save_more. available_filters.deal_type lists the ones this marketplace has. | |
| max_price | No | Highest price, in the marketplace currency. | |
| min_price | No | Lowest price, in the marketplace currency; decimals such as 19.99 are fine. | |
| seller_id | Yes | 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. | |
| category_id | No | 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. | |
| today_deals | No | 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. | |
| product_condition | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| success | No | |
| request_id | No |
TDQS
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.
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.
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.
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.
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.
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.
seller_profile_batchSeller profiles for up to 10 seller IDsARead-onlyIdempotentInspect
Use to vet sellers: name, rating and feedback counts as Amazon displays them. Returns the storefront profile for each seller id: business name, rating, feedback counts, address and marketplace presence. Price: $0.0036 per item (max 10). Seller ID validation is all-or-nothing: one malformed id rejects the entire request with 400. Every row in results is an object with status: ok (the profile), not_found (Amazon has no page for that id on this marketplace; billed, like a 404) or unavailable (could not be retrieved right now; NOT billed on the keyed path, retryable: true). A row is never null. billable_requests_count counts ok + not_found rows; on the pay-per-call rail the per-item quote is settled up front, so retry unavailable ids in a separate call rather than expecting a partial refund. On agent.apiguru.app the answer also carries success and _links.self; billable_requests_count is there on your own key only.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| seller_ids | Yes | Comma-separated seller IDs, maximum 10. Each must be an Amazon seller id -- 'A' followed by 9-20 letters and digits, e.g. A2A1RNLLUK3HYA -- or the whole call 400s. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| results | No | |
| request_id | No | |
| unavailable | No | |
| country_code | No | |
| response_time | No | |
| amazon_request_count | No | |
| billable_requests_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the readOnly/idempotent annotations: discloses pricing ($0.0036/item, max 10), all-or-nothing id validation with a 400 failure mode, and the exact billing treatment of each row status (`not_found` billed, `unavailable` not billed and `retryable`). Also notes that a row is never null and where `billable_requests_count`/`_links.self` appear by rail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return shape before the billing detail, and nearly every sentence carries actionable information. The pay-per-call settlement and rail-specific response fields are somewhat dense and could be tightened, but they are not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a billed batch read with an output schema present, this covers everything an agent needs: input constraints, failure modes, billing consequences, and per-row status semantics. Nothing material is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds behavioral meaning the schema lacks: the batch cap of 10, the all-or-nothing validation that 400s the whole call, and the Amazon seller-id format. It says nothing about `geo`, but the schema's enum fully covers that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and audience ('Use to vet sellers') and enumerates the returned fields (business name, rating, feedback counts, address, marketplace presence) for each seller id. An agent can distinguish it from siblings like seller_reviews or search without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to reach for it (vetting sellers) and a concrete operational rule: retry `unavailable` ids in a separate call rather than expecting a partial refund. It never names a sibling alternative explicitly (e.g. seller_reviews for review text), so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seller_reviewsFeedback reviews for a sellerARead-onlyIdempotentInspect
Use for a seller's customer feedback (service, shipping). Not for product reviews (product_reviews). Returns paginated seller feedback, optionally filtered to a star-rating window. Price: $0.003 per call. from_rating and to_rating are optional; omit both for unfiltered feedback. A page holds 5 reviews and the answer carries current_page and has_next_page; Amazon exposes no total, so page until has_next_page is false (up to page 100).
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| page | No | Result page, 1-based, 5 reviews a page; has_next_page in the answer says whether another exists. | |
| limit | No | How many seller reviews 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. | |
| fields | No | Comma-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. | |
| compact | No | Return 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). | |
| seller_id | Yes | Amazon seller id: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required. | |
| to_rating | No | Highest star rating to include, 1-5. | |
| from_rating | No | Lowest star rating to include, 1-5. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| success | No | |
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/idempotent safety profile; the description adds genuinely new behavior: per-call pricing ($0.003), a page cap of 100, 5 reviews per page, and the fact that Amazon exposes no total count so callers must paginate on has_next_page.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and the exclusion, then packs pricing, filtering and pagination guidance into short declarative clauses with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, yet the description still supplies the pagination termination rule and the missing-total caveat, which are the things an agent actually needs to call this correctly in a loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema does not convey: from_rating/to_rating are jointly optional and omitting both yields unfiltered feedback, and how page interacts with has_next_page. Minor ambiguity remains between the description's '5 reviews a page' and the limit field's 'up to 48 rows' remark.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (a seller's customer feedback) plus the scope of what it covers (service, shipping) and explicitly names the sibling it is not for (product_reviews). An agent can distinguish it from product_reviews without inspecting either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes away from product_reviews and states the filtering rule ('omit both for unfiltered feedback') as well as the iteration rule ('page until has_next_page is false'). Both when-to-use and how-to-proceed are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_feedbackReport a bug or request a feature (free)AInspect
Report a bug, ask for a field, or say what would make this API more useful. Free: never billed, no API key needed.
Prefer GitHub if you have an account -- an issue at
https://github.com/apiguru-app/agent-kit/issues gets a reply on the
thread, this wall does not. Use this tool when you have no GitHub
account or nothing to attach one to.
message: what happened or what you want. Be specific: the tool, the
parameters, the field, what you expected, what you got, and
the request_id from the answer. One issue per entry -- a
five-point list cannot be closed point by point.
category: bug | wish | praise | question | other
endpoint: which tool or path it is about, e.g. "search".
agent: what you are, e.g. "acme-pricing-bot/2.1". Optional.
contact: a GitHub handle or email if you want a reply. Shown
publicly on the wall. Optional.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | ||
| contact | No | ||
| message | Yes | ||
| category | No | other | |
| endpoint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, open-world, non-idempotent but non-destructive call. The description adds real value beyond that: no billing, no API key, contact details are shown publicly on the wall, and replies do not come back on this channel. It stops short of stating what a submission returns or whether repeated submissions create duplicate entries, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then routing advice, then a clean per-field block — a sensible order with no filler sentences. It runs somewhat long and the embedded advice about 'one issue per entry / five-point list' blurs the line between guidance and field definition, but nothing is truly wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. The description covers the remaining obligations: purpose, routing rule, privacy of contact, cost/auth profile, and per-parameter meaning. For a 5-parameter, 0%-coverage schema this is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the entire burden and does so: every one of the five parameters is explained with intent and examples (category values bug|wish|praise|question|other, endpoint e.g. 'search', agent e.g. 'acme-pricing-bot/2.1', contact as GitHub handle/email, message content guidance). It also flags agent and contact as optional, matching the required-only 'message' in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific action (report a bug, request a field, give feedback) and the resource (this API itself), which is a sharp contrast to every sibling tool (best_sellers, search, product_details) that queries catalog data. An agent can immediately tell this is the only write/feedback channel in the toolset. The 'free / no API key' clause further frames it as a zero-cost fallback path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the preferred alternative (GitHub issue on apiguru-app/agent-kit, which gets a threaded reply) and the precise condition for selecting this tool instead ('when you have no GitHub account or nothing to attach one to'). This is exactly the when/when-not/alternative structure that earns a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
offers_stock1 field changed- changed
Input schema / properties / check_inventory / descriptionPrevious value: -"Resolve the true purchasable stock quantity. Slower and bills more lookups, so leave off unless you need the number."New value: +"Add each offer's purchasable stock quantity (`inventory_response`), read with a cart check. Slower, and each check that reads a quantity is billed, so leave off unless you need the number."
2 tool updates
- Changed
best_sellers1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"Best-seller department, by slug or by name as Amazon shows it for that marketplace (case-insensitive; a unique fragment works, and the answer's category_resolution says when a fragment was used -- 'shoes' is the whole 'Clothing, Shoes & Jewelry' department, and the hint then lists the Shoes subcategories with their ids). Departments and their slugs differ per marketplace: amazon.com has electronics, amazon.de has ce-de (Electronics & Photo). Every answer lists that marketplace's departments under available_categories; an unknown or ambiguous name is a free 400 listing them."New value: +"Best-seller department, by slug or by name as Amazon shows it for that marketplace (case-insensitive; a unique fragment works, and the answer's category_resolution says when a fragment was used -- 'shoes' is the whole 'Clothing, Shoes & Jewelry' department, and the hint then lists the Shoes subcategories with their ids). Departments and their slugs differ per marketplace: amazon.com has electronics, amazon.de has ce-de (Electronics & Photo). A word that names a subcategory works too: category=camera on amazon.es is Electronics > Camera & Photo (category_resolution.via says 'subcategory'; several equally good matches are a free 400 listing each as category + subcategory_code). REST answers list the marketplace's departments under available_categories (the MCP tool with compact=false); an unknown name is a free 400 listing them."
- Changed
product_reviews3 fields changed- added
Input schema / properties / from_ratingAdded value: +{ + "anyOf": [ + { + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Lowest star rating to include, 1-5. Filters the reviews the product page shows (see review_coverage).", + "title": "From Rating" +} - changed
Input schema / properties / max_reviews / descriptionPrevious value: -"Cap on individual reviews returned (0 = all). The rating summary and customers_say are always returned; _reviews_total says how many exist."New value: +"Cap on individual reviews returned (0 = all). The rating summary, review_histogram and customers_say are always returned; _reviews_total is the number of reviews on the product page (not all reviews; see review_coverage)." - added
Input schema / properties / to_ratingAdded value: +{ + "anyOf": [ + { + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Highest star rating to include, 1-5. from_rating=1&to_rating=3 keeps the critical ones among them.", + "title": "To Rating" +}
10 tool updates
- Changed
best_sellers1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
deals1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
offers_stock1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
product_details1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
product_details_batch1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
product_reviews1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
search1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
seller_products1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
seller_profile_batch1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
- Changed
seller_reviews1 field changed- changed
Input schema / properties / geo / enumPrevious 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" +]
4 tool updates
- Changed
offers_stock2 fields changed- changed
Input schema / properties / asins / descriptionPrevious value: -"Comma-separated ASIN list, maximum 10. Each must be 10 uppercase alphanumeric characters; malformed entries are rejected with 400."New value: +"Comma-separated ASIN list, maximum 10. Each must be 10 uppercase alphanumeric characters; malformed entries are rejected with 400. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise." - removed
Input schema / properties / asins / patternRemoved value: -"^[A-Z0-9]{10}(,[A-Z0-9]{10})*$"
- Changed
product_details2 fields changed- changed
Input schema / properties / asin / descriptionPrevious value: -"Single Amazon ASIN, 10 uppercase alphanumeric characters. Exactly one - comma-separated lists are rejected; use product_details_batch for many."New value: +"Single Amazon ASIN, 10 uppercase alphanumeric characters. Exactly one - comma-separated lists are rejected; use product_details_batch for many. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise." - changed
Input schema / properties / asin / patternPrevious value: -"^[A-Z0-9]{10}$"New value: +"^\\s*(?:[A-Za-z0-9]{10}|https?://\\S+)\\s*$"
- Changed
product_details_batch2 fields changed- changed
Input schema / properties / asins / descriptionPrevious value: -"Comma-separated ASIN list, maximum 20 after de-duplication. Each must be 10 uppercase alphanumeric characters."New value: +"Comma-separated ASIN list, maximum 20 after de-duplication. Each must be 10 uppercase alphanumeric characters. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise." - removed
Input schema / properties / asins / patternRemoved value: -"^[A-Z0-9]{10}(,[A-Z0-9]{10})*$"
- Changed
product_reviews2 fields changed- changed
Input schema / properties / asin / descriptionPrevious value: -"Single Amazon ASIN, 10 uppercase alphanumeric characters."New value: +"Single Amazon ASIN, 10 uppercase alphanumeric characters. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise." - changed
Input schema / properties / asin / patternPrevious value: -"^[A-Z0-9]{10}$"New value: +"^\\s*(?:[A-Za-z0-9]{10}|https?://\\S+)\\s*$"
1 tool update
- Changed
offers_stock1 field changed- changed
Input schema / properties / check_inventory / descriptionPrevious value: -"Resolve the true purchasable stock quantity. Slower and bills more upstream requests, so leave off unless you need the number."New value: +"Resolve the true purchasable stock quantity. Slower and bills more lookups, so leave off unless you need the number."
4 tool updates
- Changed
search2 fields changed- changed
Input schema / properties / seller_id / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^[Aa][A-Za-z0-9]{9,20}$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / seller_id / descriptionPrevious value: -"Restrict results to one seller's offers (Amazon seller id)."New value: +"Restrict results to one seller's offers: an Amazon seller id, 'A' followed by 9-20 letters and digits (e.g. A2A1RNLLUK3HYA)."
- Changed
seller_products2 fields changed- changed
Input schema / properties / seller_id / descriptionPrevious 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." - added
Input schema / properties / seller_id / patternAdded value: +"^[Aa][A-Za-z0-9]{9,20}$"
- Changed
seller_profile_batch2 fields changed- changed
Input schema / properties / seller_ids / descriptionPrevious value: -"Comma-separated seller IDs, maximum 10. Each must be 13-15 alphanumeric characters or the whole call 400s."New value: +"Comma-separated seller IDs, maximum 10. Each must be an Amazon seller id -- 'A' followed by 9-20 letters and digits, e.g. A2A1RNLLUK3HYA -- or the whole call 400s." - changed
Input schema / properties / seller_ids / patternPrevious value: -"^[A-Za-z0-9]{13,15}(,[A-Za-z0-9]{13,15})*$"New value: +"^[Aa][A-Za-z0-9]{9,20}(,[Aa][A-Za-z0-9]{9,20})*$"
- Changed
seller_reviews2 fields changed- changed
Input schema / properties / seller_id / descriptionPrevious value: -"Amazon seller ID. Required."New value: +"Amazon seller id: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required." - added
Input schema / properties / seller_id / patternAdded value: +"^[Aa][A-Za-z0-9]{9,20}$"
Related MCP Connectors
Real-time Amazon product, seller, and search data for AI agents across 21 marketplaces.
Amazon (11 marketplaces) and Walmart US product data: search, prices, stock, history, sellers.
Amazon marketplace data for products, offers, reviews, sellers, search, categories, and deals.
Amazon keyword search, product details, seller profiles and seller catalogues, as structured JSON.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to normalized Amazon marketplace data, including product details, search, offers, reviews, sellers, categories, deals, best sellers, identifiers, stock, and sales estimates across 13 marketplaces.MIT

Easyparserofficial
AlicenseAqualityBmaintenanceReal-time, structured Amazon data for AI agents across 21 marketplaces: product details, seller offers, search results, 12-month sales history, Best Sellers Rank, package dimensions, and seller intelligence. 16 tools including free bulk-job monitoring and account usage tracking, available as a hosted endpoint or via npx.1725 npmMIT- FlicenseBqualityDmaintenanceProvides tools to access real-time Amazon data, including product details, reviews, offers, influencer profiles, and deals, through a FastMCP-based server.18-
- AlicenseAqualityAmaintenanceReal Amazon (US, UK, DE, CA, AU) & Walmart shopping data for AI assistants: ranked product shortlists, current prices, live stock, real ratings, and price/BSR history from a 17M+ product warehouse. Free hosted endpoint, no signup — 30 queries a day.31MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.