Skip to main content
Glama

Apiguru Amazon Data

Server Details

Live Amazon product, review, search, deal, offer/stock and seller data across 23 marketplaces.

Ownership verified
Status
Healthy
Uptime
100.0% over 42 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Server Listing
apiguru-amazon-data

TDQS

A4.5/5.0

Scored across 12 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
best_sellersBest-seller rankings for a categoryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
pageNoResult page, 1-based, 50 rows each; Amazon's lists stop at page 5.
limitNoHow 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.
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).
categoryNoBest-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_codeNoBrowse 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

ParametersJSON Schema
NameRequiredDescription
dataNo
pageNo
successNo
categoryNo
max_pageNo
page_sizeNo
request_idNo
category_resolutionNo
available_categoriesNo
available_subcategoriesNo

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 filtersA
Read-onlyIdempotent
Inspect

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+.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
limitNoHow 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.
brandsNoComma-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.
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.
offsetNoRow to start at. A page is 30 rows; pass the previous answer's next_offset for the next page.
compactNoReturn 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_priceNoHighest deal price to return, in the marketplace currency.
min_priceNoLowest deal price to return, in the marketplace currency. Applied to the fetched rows; see notes.
categoriesNoDepartment 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_discountNoLargest discount percentage to return.
min_discountNoSmallest discount percentage to return, e.g. 50 for half price or better.
prime_exclusiveNoOnly deals in Amazon's Prime Exclusive program.
prime_early_accessNoOnly 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_ratingNoAmazon'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

ParametersJSON Schema
NameRequiredDescription
dealsNo
successNo
request_idNo
amazon_request_countNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ASINsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
asinsYesComma-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.
conditionNoComma-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_countNo'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_inventoryNoAdd 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

ParametersJSON Schema
NameRequiredDescription
resultsNo
request_idNo
country_codeNo
response_timeNo
filters_appliedNo
amazon_request_countNo

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ASINA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
asinYesSingle 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.
fieldsNoComma-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.
compactNoReturn 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

ParametersJSON Schema
NameRequiredDescription
dataNo
successNo
request_idNo

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 callA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
asinsYesComma-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.
fieldsNoComma-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.
compactNoReturn 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

ParametersJSON Schema
NameRequiredDescription
resultsNo
request_idNo
country_codeNo
response_timeNo
amazon_request_countNo
billable_requests_countNo

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 ASINA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
asinYesSingle 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_ratingNoHighest star rating to include, 1-5. from_rating=1&to_rating=3 keeps the critical ones among them.
from_ratingNoLowest star rating to include, 1-5. Filters the reviews the product page shows (see review_coverage).
max_reviewsNoCap 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

ParametersJSON Schema
NameRequiredDescription
dataNo
successNo
request_idNo

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness3/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

seller_productsProducts listed by a sellerA
Read-onlyIdempotent
Inspect

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).

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
successNo
request_idNo

TDQS

A4.5/5.0
Behavior5/5

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

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

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

Conciseness3/5

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

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

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

Completeness5/5

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

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

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

Parameters3/5

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

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

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

Purpose5/5

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

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

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

Usage Guidelines5/5

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

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

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

seller_profile_batchSeller profiles for up to 10 seller IDsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
seller_idsYesComma-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

ParametersJSON Schema
NameRequiredDescription
noteNo
resultsNo
request_idNo
unavailableNo
country_codeNo
response_timeNo
amazon_request_countNo
billable_requests_countNo

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 sellerA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoMarketplace country code.US
pageNoResult page, 1-based, 5 reviews a page; has_next_page in the answer says whether another exists.
limitNoHow 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.
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).
seller_idYesAmazon seller id: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required.
to_ratingNoHighest star rating to include, 1-5.
from_ratingNoLowest star rating to include, 1-5.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
successNo
request_idNo

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
agentNo
contactNo
messageYes
categoryNoother
endpointNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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. 1 tool update
    • Changedoffers_stock1 field changed
      • changedInput schema / properties / check_inventory / description
        Previous 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. 2 tool updates
    • Changedbest_sellers1 field changed
      • changedInput schema / properties / category / description
        Previous 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."
    • Changedproduct_reviews3 fields changed
      • addedInput schema / properties / from_rating
        Added 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"
        +}
      • changedInput schema / properties / max_reviews / description
        Previous 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)."
      • addedInput schema / properties / to_rating
        Added 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"
        +}
  3. 10 tool updates
    • Changedbest_sellers1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changeddeals1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedoffers_stock1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedproduct_details1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedproduct_details_batch1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedproduct_reviews1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedsearch1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedseller_products1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedseller_profile_batch1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
    • Changedseller_reviews1 field changed
      • changedInput schema / properties / geo / enum
        Previous value: -[
        -  "US",
        -  "CA",
        -  "DE",
        -  "MX",
        -  "UK",
        -  "FR",
        -  "IT",
        -  "ES",
        -  "AU",
        -  "BR",
        -  "IN",
        -  "JP",
        -  "NL",
        -  "AE",
        -  "PL",
        -  "SA",
        -  "SG",
        -  "SE",
        -  "TR",
        -  "BE"
        -]New value: +[
        +  "US",
        +  "CA",
        +  "DE",
        +  "MX",
        +  "UK",
        +  "FR",
        +  "IT",
        +  "ES",
        +  "AU",
        +  "BR",
        +  "IN",
        +  "JP",
        +  "NL",
        +  "AE",
        +  "PL",
        +  "SA",
        +  "SG",
        +  "SE",
        +  "TR",
        +  "BE",
        +  "IE",
        +  "ZA",
        +  "EG"
        +]
  4. 4 tool updates
    • Changedoffers_stock2 fields changed
      • changedInput schema / properties / asins / description
        Previous 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."
      • removedInput schema / properties / asins / pattern
        Removed value: -"^[A-Z0-9]{10}(,[A-Z0-9]{10})*$"
    • Changedproduct_details2 fields changed
      • changedInput schema / properties / asin / description
        Previous 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."
      • changedInput schema / properties / asin / pattern
        Previous value: -"^[A-Z0-9]{10}$"New value: +"^\\s*(?:[A-Za-z0-9]{10}|https?://\\S+)\\s*$"
    • Changedproduct_details_batch2 fields changed
      • changedInput schema / properties / asins / description
        Previous 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."
      • removedInput schema / properties / asins / pattern
        Removed value: -"^[A-Z0-9]{10}(,[A-Z0-9]{10})*$"
    • Changedproduct_reviews2 fields changed
      • changedInput schema / properties / asin / description
        Previous 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."
      • changedInput schema / properties / asin / pattern
        Previous value: -"^[A-Z0-9]{10}$"New value: +"^\\s*(?:[A-Za-z0-9]{10}|https?://\\S+)\\s*$"
  5. 1 tool update
    • Changedoffers_stock1 field changed
      • changedInput schema / properties / check_inventory / description
        Previous 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."
  6. 4 tool updates
    • Changedsearch2 fields changed
      • changedInput schema / properties / seller_id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^[Aa][A-Za-z0-9]{9,20}$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / seller_id / description
        Previous 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)."
    • Changedseller_products2 fields changed
      • changedInput schema / properties / seller_id / description
        Previous value: -"Restrict results to one seller's offers (Amazon seller id)."New value: +"Amazon seller id whose storefront to list: 'A' followed by 9-20 letters and digits, the seller= or me= value of a storefront URL (e.g. A2A1RNLLUK3HYA). Required."
      • addedInput schema / properties / seller_id / pattern
        Added value: +"^[Aa][A-Za-z0-9]{9,20}$"
    • Changedseller_profile_batch2 fields changed
      • changedInput schema / properties / seller_ids / description
        Previous 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."
      • changedInput schema / properties / seller_ids / pattern
        Previous 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})*$"
    • Changedseller_reviews2 fields changed
      • changedInput schema / properties / seller_id / description
        Previous 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."
      • addedInput schema / properties / seller_id / pattern
        Added value: +"^[Aa][A-Za-z0-9]{9,20}$"

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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
  • A
    license
    A
    quality
    B
    maintenance
    Real-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.
    17
    25 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Real 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.
    3
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources