Skip to main content
Glama

ALLR Motorcycle Gear Prices

Get every retailer offer for a product

get_product_offers
Read-onlyIdempotent

Get the full per-retailer offer table for ONE ALLR product in a buyer country: landed cost broken down into item price, shipping, import duty and customs brokerage (these sum to landed_total; destination sales tax / VAT is not included, so tax is 0), plus stock, condition, per-colorway size availability, whether the retailer ships to that country, and a buy link (an allr.io redirect to the retailer). search_gear only carries the single lowest number. Offers are sorted cheapest landed first and the first limit are returned (default 10, max 40; offer_count is the total available); a retailer that does not ship to the country is still listed, flagged and sorted last. Availability is truth per (retailer x colorway x size): each offer carries availability_by_colorway, one row per colorway with ITS OWN sizes. There is no offer-level size list, because a size in stock in one colorway says nothing about another.

Input Schema

NameRequiredDescriptionDefault
sizeNoRestrict to offers that have this size IN STOCK in at least one colorway, e.g. 'L', 'XL', '44'. The kept offers carry `matched_colorways` — exactly the colorways that have it. Combined with `colorway`, the offer must have that size IN that colorway. An offer with no per-colorway breakdown is dropped by this filter rather than guessed at.
limitNoMaximum offers to return, cheapest landed first (1-40, default 10). `offer_count` is the total and `has_more` says whether more offers exist beyond this limit.
countryNoBuyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + customs brokerage fee. Destination sales tax / VAT is not included. ALLR computes landed cost for these four markets only.US
colorwayNoRestrict to offers carrying this colorway. Matched against the product's real colorway NAMES the way the product page matches them: the normalized name first ('matt black' = 'Matt Black'), and only if nothing matches exactly, any colorway whose name contains all of those words as whole words ('black' matches 'Matt Black' AND 'Black/Red'). A value that matches no colorway on this product comes back as an error listing the valid names. When omitted, every colorway is included.
product_idYesALLR product id from search_gear, or a full https://allr.io/product/<id> URL, or the bare slug. A merged/renamed id is followed to its canonical product automatically.
include_out_of_stockNotrue includes out-of-stock offers in the table (ALLR does not hide them by default); false returns only in-stock offers.

Output Schema

NameRequiredDescriptionDefault
as_ofYesISO-8601 timestamp at which these prices were assembled.
offersYes
countryYes
productYes
currencyYes
has_moreNotrue when more offers exist than `limit` returned; `limit` accepts up to 40.
offer_countYesTotal offers for this product/country after filters (may exceed the number returned in `offers`).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / colorway / description
      Previous value: -"Restrict to offers carrying this colorway. Matched against the product's real colorway NAMES the way the product page matches them: the normalized name first ('matt black' = 'Matt Black'), and only if nothing matches exactly, any colorway whose name contains all of those words as whole words ('black' matches 'Matt Black' AND 'Black/Red'). A value that matches no colorway on this product comes back as an error listing the valid names. Omit to see every colorway."New value: +"Restrict to offers carrying this colorway. Matched against the product's real colorway NAMES the way the product page matches them: the normalized name first ('matt black' = 'Matt Black'), and only if nothing matches exactly, any colorway whose name contains all of those words as whole words ('black' matches 'Matt Black' AND 'Black/Red'). A value that matches no colorway on this product comes back as an error listing the valid names. When omitted, every colorway is included."
    • changedInput schema / properties / include_out_of_stock / description
      Previous value: -"Keep out-of-stock offers in the table (default true — ALLR never hides them). Set false to see only buyable offers."New value: +"true includes out-of-stock offers in the table (ALLR does not hide them by default); false returns only in-stock offers."
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum offers to return, cheapest landed first (1-40, default 10). Compare with `offer_count` (the total) and `has_more`; raise it to see more."New value: +"Maximum offers to return, cheapest landed first (1-40, default 10). `offer_count` is the total and `has_more` says whether more offers exist beyond this limit."
    • changedOutput schema / properties / as_of / description
      Previous value: -"ISO-8601 timestamp at which these prices were assembled. Quote it when stating a price."New value: +"ISO-8601 timestamp at which these prices were assembled."
    • changedOutput schema / properties / has_more / description
      Previous value: -"true when more offers exist than `limit` returned; raise `limit` (max 40)."New value: +"true when more offers exist than `limit` returned; `limit` accepts up to 40."
    • changedOutput schema / properties / offers / items / properties / availability_by_colorway / description
      Previous value: -"Per-colorway stock: one row per colorway, each carrying ONLY that colorway's in-stock sizes. Never union these rows — a size present in one colorway is not available in another. An EMPTY sizes_in_stock means that colorway has nothing in stock at this retailer. null means ALLR cannot attribute sizes to colorways for this offer at all; `availability_note` then says why, and no size may be stated for this offer."New value: +"Per-colorway stock: one row per colorway, each carrying ONLY that colorway's in-stock sizes. Rows are independent: a size present in one colorway is not in stock in another. An EMPTY sizes_in_stock means that colorway has nothing in stock at this retailer. null means ALLR cannot attribute sizes to colorways for this offer; `availability_note` says why."
    • changedOutput schema / properties / offers / items / properties / sizes_listed / description
      Previous value: -"Every size the retailer lists for this offer, in stock or not, across all of its colorways. This is a LISTING-level array and says nothing per colorway — use availability_by_colorway for that."New value: +"Every size the retailer lists for this offer, in stock or not, across all of its colorways. This is a LISTING-level array and says nothing per colorway — per-colorway stock is in availability_by_colorway."
  2. Changed10 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"Buyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + VAT. ALLR computes landed cost for these four markets only. ASK the rider rather than guessing."New value: +"Buyer country (ISO-2, plus 'EU' and 'UK' as market codes). Determines the currency and the landed cost: item price + shipping + import duty + customs brokerage fee. Destination sales tax / VAT is not included. ALLR computes landed cost for these four markets only."
    • changedInput schema / properties / limit / default
      Previous value: -40New value: +10
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum offers to return (1-40)."New value: +"Maximum offers to return, cheapest landed first (1-40, default 10). Compare with `offer_count` (the total) and `has_more`; raise it to see more."
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "true when more offers exist than `limit` returned; raise `limit` (max 40).",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / offer_count / description
      Added value: +"Total offers for this product/country after filters (may exceed the number returned in `offers`)."
    • addedOutput schema / properties / offers / items / properties / brokerage
      Added value: +{
      +  "description": "Courier customs-clearance (brokerage) fee in `currency`; 0 when the parcel needs no clearance or the retailer is domestic.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / offers / items / properties / buy_url / description
      Previous value: -"Use verbatim — an allr.io redirect that preserves attribution."New value: +"An allr.io redirect to the retailer's product page; it counts the click."
    • addedOutput schema / properties / offers / items / properties / duty / description
      Added value: +"Import duty in `currency`."
    • changedOutput schema / properties / offers / items / properties / landed_total / description
      Previous value: -"Item + shipping + duty + tax in `currency`. null when the retailer cannot ship to this country."New value: +"Item + shipping + duty + brokerage (+ tax, which is always 0: destination sales tax / VAT is not included) in `currency`. null when the retailer cannot ship to this country."
    • addedOutput schema / properties / offers / items / properties / tax / description
      Added value: +"Destination sales tax / VAT. Always 0: ALLR does not include it (the retailer shows it at checkout)."
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavior the agent could not infer: landed cost is item + shipping + duty + brokerage with tax excluded, results are sorted cheapest-landed-first and capped by limit with offer_count showing the total, and non-shipping retailers are still listed but flagged and sorted last. It also discloses the per-colorway availability model and the error behavior for an unmatched colorway.

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 core purpose, and the tax-exclusion and sorting rules appear early where an agent will read them. The prose is dense to the point of being a single wall of clauses, and the repeated re-explanation of landed-cost components in the country param is redundant, but no sentence is throwaway.

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 covers return shape, and the description supplies everything else an agent needs for a 6-parameter read tool: cost composition, sort order, pagination signals, out-of-market handling, and the colorway/size matching model. 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 the baseline is 3; the description still earns credit by explaining the data model behind the parameters — that availability is per (retailer x colorway x size), that there is deliberately no offer-level size list, and that offers lacking a per-colorway breakdown are dropped rather than guessed at. It mostly restates limit and country semantics already in the schema, which keeps it off a 5.

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 and resource ("Get the full per-retailer offer table for ONE ALLR product in a buyer country") and immediately scopes it against a named sibling: "search_gear only carries the single lowest number." An agent can tell exactly what this returns versus a search result 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?

The alternative is named explicitly (search_gear for the single lowest price, this tool for the full per-retailer breakdown), and the product_id schema hints at the search_gear workflow. What's missing is an explicit "when not to use" statement, e.g. don't call this for browsing or for products not yet resolved to an id.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources