AASINRating

Getting started

ASINRating is a free, read-only MCP data service that mirrors Amazon US public Best Sellers ranks (amazon.com; US market only) and cross-verifies product facts from public listings. Fact-only, neutral, no sponsored entries, no promotional tags.

Endpoint

Quick start

1. Initialize the session:

{
  "jsonrpc": "2.0", "id": 1, "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "capabilities": {},
    "clientInfo": {"name": "your-agent", "version": "1.0"}
  }
}

2. Call a tool:

{
  "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": {
    "name": "list_categories",
    "arguments": {}
  }
}

For MCP-compatible assistants (ChatGPT, Claude, Muse, Grok), simply add https://asinrating.com/mcp as a connector — no manual JSON-RPC required.

Standard discovery chain

The server implements the full standard MCP discovery flow: initialize → tools/list → tools/call. tools/list returns the complete catalog of all eleven tools with their input schemas — always discover tools from the server rather than assuming a fixed list, and send notifications/initialized after initialize if your client requires it.

Suggested flow

1. Discover — list_categories to enumerate categories and subcategories.

2. Orient — get_category_brief for a structured market overview of a category.

3. Filter / Compare — search_products to shortlist candidates; compare_products for side-by-side facts.

4. Verify — get_product for the full profile including three-source facts check and red-flag signals; scrap_page when the freshest price or stock is required.

5. Transact — open the plain product_url (no promotional tags) on Amazon.

Response conventions

Every tool response carries a notes block:

FieldMeaning
confidenceOverall data confidence for the response
data_as_ofUTC timestamp of the underlying data snapshot
data_age_daysAge of the snapshot in days
is_staletrue when the snapshot is older than the freshness target
sample_sizeSample size behind quantitative fields, when applicable
noteTool-specific usage guidance

Web pages vs API

These web pages show only the category structure. Product-level Top-100 lists and all product data are served exclusively through the MCP API.

Tool catalog

ToolPurpose
list_categoriesCategories and subcategories
get_category_briefStructured category market brief
get_top100Best Sellers Rank list
get_productFull product profile
search_productsSearch with sort and filters
compare_productsSide-by-side comparison
requestFetch by URL or ASIN with field filters
get_priceLatest stored price
scrap_pageReal-time page scrape
get_price_change180-day price change summary
get_brandBrand profile from the brand registry

Data principles

Full machine-readable guides: agents.md and llms.txt.

Maintenance

ASINRating is maintained by Bobbi Tseng, reachable at support@asinrating.com. Security reports: support@asinrating.com, admin@asinrating.com.


list_categories

List the top-level product categories and their subcategories covered by this service. Subcategories are enumerable: each carries a human-readable name and a stable subcategory_id you can pass directly to get_top100.

When to use: always call this first — every category-scoped tool takes a category_id or subcategory_id returned here.

Parameters

NameTypeRequiredDescription
*(none)*———

Example call

{
  "jsonrpc": "2.0", "id": 3, "method": "tools/call",
  "params": {"name": "list_categories", "arguments": {}}
}

Response shape

{
  "categories": [
    {
      "category_id": "all-departments",
      "name": "All Departments",
      "subcategories": [
        {"subcategory_id": "7073960011", "name": "Portable Power Banks"},
        {"subcategory_id": "...", "name": "On-Dash Cameras"}
      ],
      "coverage_status": "covered"
    }
  ],
  "notes": {"confidence": "...", "data_as_of": "...", "...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
categories[].category_idSlug identifier for top-level category tools (get_top100(category_id), get_category_brief)
categories[].nameDisplay name, mirrors Amazon's public department naming
categories[].subcategories[].subcategory_idNumeric node identifier; pass it verbatim to get_top100(subcategory_id=...)
categories[].subcategories[].nameHuman-readable subcategory name
coverage_status"covered" — the category is in active coverage

Tool note

Subcategory names mirror Amazon's public category tree. Use get_top100 with either the parent category_id (whole department) or a specific subcategory_id (single list).

Related tools


get_category_brief

Get a structured market brief for a top-level category: market overview metrics, consideration factors, gotchas, scene needs, keywords, and a candidate pool of ASINs.

When to use: to orient within a category before picking individual products.

Parameters

NameTypeRequiredDescription
category_idstringyesSlug of a top-level category (from list_categories)

Example call

{
  "jsonrpc": "2.0", "id": 5, "method": "tools/call",
  "params": {
    "name": "get_category_brief",
    "arguments": {"category_id": "all-departments"}
  }
}

Response shape

{
  "category": {"category_id": "...", "name": "..."},
  "market_overview": {
    "subcategories": 9,
    "heat_score": 72.4,
    "brand_count": 148.2,
    "seller_count": 210.9,
    "monopoly_index": 0.31,
    "top100_coverage": 0.87,
    "congestion_score": 55.0
  },
  "considering_factors": ["..."],
  "gotchas": [{"factor": "...", "source": "multi-source cross-verified review corpus"}],
  "common_questions": [],
  "common_questions_available": false,
  "needs": ["..."],
  "keywords": ["..."],
  "candidate_pool": {"sample_asins": ["B01MTB55WH", "..."]},
  "notes": {"sample_size": 1200, "...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
market_overviewAverages across the category's subcategories; subcategories is the count
considering_factorsInductive purchase-consideration factors from a cross-verified review corpus
gotchasInductive pitfalls with their verification source
common_questions_availablefalse when this dataset is not published for the category
needs / keywordsScene needs and search keywords observed in the corpus
candidate_pool.sample_asinsASIN sample to feed into get_product / compare_products

Tool note

> The category brief is derived from a sample of products. CCF/Gotchas are inductive findings, not exhaustive; mention rates and sentiment distributions are statistical representations, not recommendations. See sample_size; quantitative fields return insufficient_sample when the sample is insufficient.

Related tools


get_top100

Get the Best Sellers Rank list (rank 1..N) for either a whole top-level category or a single subcategory. Ranking is an objective representation of Amazon's official best-seller list, presented without evaluation.

When to use: after list_categories, to pull the ranked list that anchors category research.

Parameters

NameTypeRequiredDescription
category_idstringone of twoSlug of a top-level category (from list_categories)
subcategory_idstringone of twoNumeric node id of a single subcategory (from list_categories)

Provide exactly one of the two. Rankings are per subcategory list (rank 1..N).

Example call

{
  "jsonrpc": "2.0", "id": 4, "method": "tools/call",
  "params": {
    "name": "get_top100",
    "arguments": {"subcategory_id": "7073960011"}
  }
}

Response shape

{
  "category": {"category_id": "...", "name": "..."},
  "list_size": 100,
  "top100": [
    {
      "rank": 1,
      "bsr_subcategory_rank": 1,
      "subcategory_id": "7073960011",
      "asin": "B01MTB55WH",
      "brand": "Anker",
      "title": "Portable Charger ...",
      "rating": 4.6,
      "review_count": 25000,
      "rating_distribution": {"five_star": 78, "four_star": 14, "...": "..."},
      "price": 29.99,
      "price_as_of": "2026-11-04T08:12:00Z",
      "product_url": "https://www.amazon.com/dp/B01MTB55WH",
      "buyer_signal": null
    }
  ],
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
rankPosition in this list (1-based, contiguous)
bsr_subcategory_rankBest Sellers Rank within the subcategory as observed
rating / review_countSnapshot values at collection time
rating_distributionFull 5-to-1 star percentage breakdown
price / price_as_ofObserved price snapshot with its UTC timestamp — not real-time
product_urlPlain Amazon product page, no promotional tags
buyer_signalavoid_strong only when a high-confidence red flag exists; otherwise absent

Tool note

> BSR ranking is an objective representation of Amazon's official best-seller list, presented without evaluation. Rankings update over time; see data_as_of for the data timestamp. Prices are snapshots (see price_as_of); for a real-time quote call scrap_page or open product_url. For side-by-side comparison, call compare_products with 2-5 ASINs.

Related tools


get_product

Get a product's full profile: specifications, the complete listing description, ratings, price, trend, dimension scores and percentiles, three-source facts check, red-flag signals, and sentiment.

When to use: to verify a candidate ASIN in depth before recommending or comparing it.

Parameters

NameTypeRequiredDescription
asinstringyes10-character Amazon ASIN

Example call

{
  "jsonrpc": "2.0", "id": 6, "method": "tools/call",
  "params": {
    "name": "get_product",
    "arguments": {"asin": "B01MTB55WH"}
  }
}

Response shape

{
  "profile": {
    "asin": "B01MTB55WH",
    "title": "Portable Charger ...",
    "brand": "Anker",
    "specifications": {"...": "..."},
    "feature_bullets": ["..."],
    "full_description": "Complete product description paragraph from the listing (null when the source listing has no description)",
    "categories": ["..."],
    "product_url": "https://www.amazon.com/dp/B01MTB55WH",
    "media": {"videos_count": 2, "images_count": 18}
  },
  "price": {
    "price_current": 29.99,
    "currency": "USD",
    "hist_180d_min": 25.99,
    "hist_180d_max": 35.99,
    "price_as_of": "2026-11-04T08:12:00Z"
  },
  "ratings": {"rating": 4.6, "review_count": 25000, "rating_distribution": {"...": "..."}},
  "competitiveness": {"bsr_leaf_rank": 1, "bought_past_month": 9000, "...": "..."},
  "seller": {"buybox_seller": "...", "fba": true, "is_prime": true, "...": "..."},
  "facts_check": [
    {"claim_id": "...", "claim_text": "...",
     "user_reviews": "corroborated", "social_ugc": "unmentioned_in_reviews",
     "seller_self": "consistent", "needs_manual_review": false}
  ],
  "red_flags": {"verdict": "...", "confidence": "...", "buyer_signal": null},
  "sentiment": {"overall_polarity": "positive", "themes": ["..."], "sample_size": 320},
  "data_limitations": [],
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
profileIdentity, specs, bullets, categories, media counts, plain product URL
priceCurrent stored price, 180-day history min/max/avg, node price percentiles
trend180-day price trend and 60-day review growth
ratingsSnapshot rating, review count, full star distribution, node percentiles
competitivenessBSR rank, monthly bought estimate, brand concentration (HHI, top shares), in-node percentiles
sellerBuy Box seller profile, fulfillment type, in-stock percentage, tier
facts_checkPer-claim verdicts from three independent sources: user_reviews, social_ugc, seller_self
red_flagsConfidence-layered integrity signals; only high confidence maps to avoid_strong
sentimentOverall polarity plus themes with sample size; sparse or low-confidence data is flagged
data_limitationsExplicit list, e.g. partial claims under manual review

Verdict vocabulary

Tool note

> Facts check presents three sources independently: user reviews and social UGC may show unmentioned_in_reviews due to data sparsity (meaning "not mentioned in reviews", not "refuted"); seller_self verifies internal consistency of the seller's own copy. Red-flag signals are layered by confidence — only high-confidence suspicious cases are marked avoid_strong. Evaluate each claim's credibility yourself; this tool draws no conclusion. Prices are snapshots (see price_as_of in the price block); for a real-time quote call scrap_page or open product_url. For side-by-side comparison, call compare_products with 2-5 ASINs.

Related tools


request

Fetch structured data by URL or ASIN with optional field filters. Same payload as get_product, but accepts an Amazon product URL directly and lets you request only the fields you need.

When to use: when you have a product URL instead of an ASIN, or want a trimmed payload.

Parameters

NameTypeRequiredDescription
urlstringone of twoA valid Amazon product URL containing an ASIN
asinstringone of two10-character Amazon ASIN
fieldslist of stringnoSubset of top-level fields to return

Available fields

profile, price, trend, ratings, competitiveness, seller, facts_check, red_flags, sentiment

Example call

{
  "jsonrpc": "2.0", "id": 9, "method": "tools/call",
  "params": {
    "name": "request",
    "arguments": {
      "url": "https://www.amazon.com/dp/B01MTB55WH",
      "fields": ["price", "ratings"]
    }
  }
}

Response shape

{
  "price": {"price_current": 29.99, "currency": "USD", "price_as_of": "2026-11-04T08:12:00Z"},
  "ratings": {"rating": 4.6, "review_count": 25000, "rating_distribution": {"...": "..."}},
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

Tool note

> Returns raw data by structured fields; see schema for field definitions. Quantitative fields return insufficient_sample when the sample is insufficient.

Related tools


get_brand

Get a brand's full profile from the brand registry: tier, product count, cumulative review count, rating breakdown, seller positive percentage, subcategory monopoly HHI, 90-day trend, and ratings gained over 30/90 days. Pass a brand_name for an exact match, or a partial name to receive candidate matches.

When to use: researching a brand's market footprint and concentration; pass an exact brand_name or a partial name to receive candidate matches.

Parameters

NameTypeRequiredDescription
brand_namestringyesExact brand name, or a partial name to receive candidate matches

Example call

{
  "jsonrpc": "2.0", "id": 12, "method": "tools/call",
  "params": {
    "name": "get_brand",
    "arguments": {"brand_name": "Samsung"}
  }
}

Response shape

{
  "brand": {
    "brand_name": "Samsung",
    "category_ids": ["Electronics"],
    "product_count": 12,
    "variant_count": 30,
    "review_count_total": 120000,
    "avg_rating": 4.5,
    "rating_breakdown": {"five_pct": 74.0, "four_pct": 10.8, "three_pct": 6.0, "two_pct": 3.0, "one_pct": 6.6},
    "seller_positive_pct": 0.92,
    "buybox_share_30d": 0.85,
    "monopoly_hhi": 0.12,
    "ratings_gained_30d": null,
    "ratings_gained_90d": null,
    "trend_90d": null,
    "tier": "head",
    "amazon_buybox_share": 0.85,
    "first_seen_at": "2026-11-04T00:00:00Z",
    "updated_at": "2026-11-04T00:00:00Z",
    "avg_price": 299.99,
    "max_bought_past_month": 5000,
    "best_bsr": 1234,
    "price_bucket": ">$100"
  },
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
tierBrand tier label (an objective registry classification)
product_count / review_count_total / avg_ratingBrand-level aggregate counts and rating
rating_breakdownFull 5-to-1 star percentage breakdown
seller_positive_pct / monopoly_hhiSeller positive percentage and subcategory monopoly HHI
trend_90d / ratings_gained_30d / ratings_gained_90d90-day trend and ratings gained
category_idsCategories the brand appears in

Tool note

> Brand fields are objective registry facts: tier, counts, rating breakdowns, and concentration measures. No evaluation or recommendation is attached.

Related tools


search_products

Search for candidate products matching a query, each with a data-maturity tier. Supports sorting and price/rating filters.

When to use: to shortlist candidates by keyword before deeper verification.

Parameters

NameTypeRequiredDescription
querystringyes1-8 space-separated terms (title / brand / feature-bullet match)
category_idstringnoRestrict to a top-level category (from list_categories)
sortstringnoprice_asc \price_desc \rating_desc \review_count_desc
min_pricenumbernoMinimum price, USD
max_pricenumbernoMaximum price, USD
min_ratingnumbernoMinimum average rating, 0-5

Example call

{
  "jsonrpc": "2.0", "id": 7, "method": "tools/call",
  "params": {
    "name": "search_products",
    "arguments": {"query": "power bank", "sort": "rating_desc", "max_price": 40}
  }
}

Response shape

{
  "results": [
    {
      "asin": "B01MTB55WH",
      "brand": "Anker",
      "title": "Portable Charger ...",
      "data_tier": "top",
      "price": 29.99,
      "price_as_of": "2026-11-04T08:12:00Z",
      "rating": 4.6,
      "review_count": 25000,
      "rating_distribution": {"five_star": 78, "...": "..."},
      "product_url": "https://www.amazon.com/dp/B01MTB55WH"
    }
  ],
  "notes": {"...": "..."}
}

*(abbreviated for readability; result limit 100)*

Field notes

FieldDescription
results[].data_tierData-maturity tier label describing how completely this product is covered
results[].price / price_as_ofStored price snapshot, not real-time
results[].rating_distributionFull star breakdown

Tool note

> Sort with sort (price_asc | price_desc | rating_desc | review_count_desc); filter with min_price, max_price, min_rating (USD / 0-5 stars). Results include product_url and price_as_of; prices are snapshots — for a real-time quote call scrap_page. For side-by-side comparison, call compare_products with 2-5 ASINs.

Related tools


compare_products

Compare two to five products side-by-side across dimensions. The comparison is a dimension-by-dimension presentation with no ranking of better or worse — judgment is left to you.

When to use: after shortlisting, to put the candidates' facts next to each other.

Parameters

NameTypeRequiredDescription
asinslist of stringyes2-5 valid ASINs

Example call

{
  "jsonrpc": "2.0", "id": 8, "method": "tools/call",
  "params": {
    "name": "compare_products",
    "arguments": {"asins": ["B01MTB55WH", "B07QK2SPP7"]}
  }
}

Response shape

{
  "products": ["B01MTB55WH", "B07QK2SPP7"],
  "dimensions": {
    "specs": {"B01MTB55WH": {"...": "..."}, "B07QK2SPP7": {"...": "..."}},
    "rating": {"B01MTB55WH": 4.6, "B07QK2SPP7": 4.4},
    "review_count": {"B01MTB55WH": 25000, "B07QK2SPP7": 12000},
    "price": {"B01MTB55WH": 29.99, "B07QK2SPP7": 25.99},
    "competitiveness": {"B01MTB55WH": {"...": "..."}, "B07QK2SPP7": {"...": "..."}},
    "facts_check": {"B01MTB55WH": {"claims": 12, "social_ugc_corroborated": 5, "...": "..."}}
  },
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

DimensionDescription
specsSpecification payload from each product's profile
rating / review_count / priceSnapshot values
competitivenessIn-node percentiles, brand concentration, monthly bought estimate
facts_checkClaim counts per source verdict (corroborated / contradicted / consistent / inconsistent)

Tool note

> The comparison is a side-by-side, dimension-by-dimension presentation with no ranking of better or worse. Judge for yourself.

Related tools


get_price

Get a product's latest stored price and product-page link.

When to use: quick price check from the stored snapshot; call scrap_page if you need a real-time quote.

Parameters

NameTypeRequiredDescription
asinstringyes10-character Amazon ASIN

Example call

{
  "jsonrpc": "2.0", "id": 10, "method": "tools/call",
  "params": {
    "name": "get_price",
    "arguments": {"asin": "B01MTB55WH"}
  }
}

Response shape

{
  "asin": "B01MTB55WH",
  "price_current": 29.99,
  "price_currency": "USD",
  "product_url": "https://www.amazon.com/dp/B01MTB55WH",
  "price_as_of": "2026-11-04T08:12:00Z",
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
price_current / price_currencyLatest stored price and currency
price_as_ofUTC timestamp of the price snapshot
product_urlPlain Amazon product page with no promotional tag

Tool note

> Price is as of query time (see price_as_of). The product link is an Amazon product-page URL with no promotional tag; this tool derives no commercial benefit from the link.

Related tools


get_price_change

Get a product's 180-day price change summary from recorded history: current price, 180-day low/high/average, sample count, and where the current price sits among its own recorded observations.

When to use: answering "is now a good time to buy" style questions from historical data. This is a stored snapshot — call scrap_page for a real-time quote.

Parameters

NameTypeRequiredDescription
asinstringyes10-character Amazon ASIN

Example call

{
  "jsonrpc": "2.0", "id": 11, "method": "tools/call",
  "params": {
    "name": "get_price_change",
    "arguments": {"asin": "B01MTB55WH"}
  }
}

Response shape

{
  "asin": "B01MTB55WH",
  "price_current": 29.99,
  "price_currency": "USD",
  "low_180d": 24.99,
  "high_180d": 39.99,
  "avg_180d": 32.45,
  "sample_count_180d": 6,
  "position_in_180d_range_pct": 16.7,
  "current_vs_avg_180d_pct": -7.6,
  "current_vs_low_180d_pct": 20.0,
  "current_vs_high_180d_pct": -25.0,
  "price_as_of": "2026-11-04T08:12:00Z",
  "product_url": "https://www.amazon.com/dp/B01MTB55WH",
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
low_180d / high_180d / avg_180dLowest, highest, and average recorded price over the trailing 180 days
sample_count_180dNumber of price observations behind the statistics
position_in_180d_range_pctPercentile of the current price among its own recorded 180-day observations (lower = closer to the historical low)
current_vs_avg_180d_pctCurrent price vs the 180-day average, in percent (negative = below average)
changeReturned as insufficient_sample when no usable history exists

Tool note

> Statistics come from the recorded pipeline history (see price_as_of), presented without evaluation. This tool draws no conclusion on whether to buy; interpret the numbers yourself.

Related tools


scrap_page

Scrape a product page in real time for the latest price, stock, Buy Box seller, rating, and review count. This is the only tool that returns a live snapshot rather than stored data.

When to use: only when the freshest price or stock is required — real-time scraping is slower than stored-data tools.

Parameters

NameTypeRequiredDescription
asinstringone of two10-character Amazon ASIN
urlstringone of twoA valid Amazon product URL containing an ASIN

Example call

{
  "jsonrpc": "2.0", "id": 11, "method": "tools/call",
  "params": {
    "name": "scrap_page",
    "arguments": {"asin": "B01MTB55WH"}
  }
}

Response shape

{
  "asin": "B01MTB55WH",
  "price": 29.99,
  "currency": "USD",
  "stock": "In Stock",
  "buybox_seller": "Amazon.com",
  "buybox_seller_note": null,
  "rating": 4.6,
  "review_count": 25000,
  "product_url": "https://www.amazon.com/dp/B01MTB55WH",
  "data_as_of": "2026-11-04T09:30:00Z",
  "notes": {"...": "..."}
}

*(abbreviated for readability)*

Field notes

FieldDescription
price / currencyLive Buy Box price at scrape time
stockAvailability string from the page
buybox_sellerBuy Box winner name; buybox_seller_note explains when it is not disclosed
rating / review_countLive values from the page
data_as_ofUTC timestamp of this scrape

Tool note

> This is a real-time scrape snapshot; see data_as_of for the data timestamp. Real-time scraping is slower — call only when the latest price or stock is required.

Related tools