To check Amazon seller feedback across marketplaces, call /amazon-seller-review once per marketplaceId with the same sellerId: there is no bulk endpoint that answers for several stores in one request. Each call returns ratings split into four windows (30, 90, 365 days and lifetime), plus up to five recent reviews. A seller who sells on four stores may well have a storefront, and feedback, on only some of them; the marketplaces without one answer with a 404, and that 404 is billed exactly like a successful call.
Key Takeaways
/amazon-seller-reviewtakes onesellerIdand onemarketplaceIdper call: checking 4 marketplaces costs 4 credits, with no bulk option.- A 404 "no storefront on this marketplace" is billed the same as a 200: the credit buys the answer "not here", not just data.
- Ratings come in four windows: 30d, 90d, 365d, lifetime.
reviewsCountdefaults to 0 andstarRatingdefaults to "N/A" per period; neither value means an error. sellerAvgRatingis our own 365-day weighted average, not a number Amazon itself publishes on the feedback page.- A first-party Amazon seller ID always gets a 404 (there is no storefront page for Amazon itself), separate from a third-party seller simply missing from one store.
Why does the same seller need a separate check per marketplace?
A seller account can be active on several Amazon stores under the same seller ID, but the storefront and feedback page are per marketplace: a buyer on amazon.de never sees reviews left on amazon.it. The API mirrors that: sellerId plus marketplaceId together pick one page to read, so there is no way to ask for "this seller, everywhere" in a single call. If you track sellers that compete with you across several stores, plan on one call (one credit) per marketplace you care about, per check.
| Field | What it holds |
|---|---|
| positiveRating / neutralRating / negativeRating | counts per period, 0 when no feedback in that window |
| reviewsCount | the three counts above, summed; 0 is a valid "nothing in this window" answer |
| starRating | page's rating text per period, or "N/A" when no rendered text/data exists for it |
| sellerAvgRating | our own 365-day weighted average (1/3/5 per star), not Amazon's own number |
| recentFeedback | up to 5 most recent reviews with text, rating, and date |
A trimmed /amazon-seller-review response (one marketplace, one period shown)
{
"sellerId": "A2PANEUSELLER1",
"marketplaceId": "A1PA6795UKMFR9",
"marketplace_name": "Amazon DE",
"sellerFullName": "EU Handel GmbH",
"sellerTotalReviewAmount": 1000,
"sellerAvgRating": 4.78,
"feedback": {
"reviewsCount": {"30d": 25, "90d": 74, "365d": 300, "lifetime": 1000},
"starRating": {"30d": "97% positive", "90d": "96% positive", "365d": "95% positive",
"lifetime": "94% positive"},
"recentFeedback": [{"text": "Fast shipping", "rating": 5, "dateRated": "2026-10-20"}]
}
}
What happens when a seller has no storefront on a marketplace?
Two different situations both end in a billed 404. First, a first-party Amazon seller ID (the buy box held by "Amazon" itself) never has a storefront feedback page at all, so the API short-circuits to 404 before even trying to fetch one. Second, a real third-party seller who simply has no presence on the requested marketplace gets a 404 once the page confirms they are not there. Both differ from a 503 SELLER_FETCH_UNAVAILABLE, which means the fetch itself failed and is worth retrying; a 404 is a confirmed answer and retrying it only spends more credits for the same result.

How do I check a seller across several marketplaces in Python?
The script below calls /amazon-seller-review once per marketplace for the same seller ID, prints a one-line summary per store, and treats a 404 as a normal (billed) outcome rather than an error to retry. It validates the sellerId shape before paying for a call, stops the whole run on 401/403, and caps the number of consecutive failed marketplaces so a broken key or outage does not spend credits chasing a run that is clearly failing. It uses sellermagnet.py (ApiError, new_session) and retry.py (get_with_retry) from the Python quickstart.
seller_across_markets.py - one seller, checked on DE, FR, IT and ES
"""Check one Amazon seller's feedback across several marketplaces with the Amazon seller feedback API.
A seller can sell on several Amazon stores under the same seller ID, but a storefront on one marketplace
does not mean a storefront (or any feedback) on another. /amazon-seller-review is called once per
(sellerId, marketplaceId) pair - there is no bulk/cross-marketplace endpoint - and each call costs 1 credit
whether or not the seller has a presence there. A 404 "no storefront on this marketplace" is billed exactly
like a 404 for an unknown ASIN elsewhere in the API: the credit buys the answer "not here", not just data.
Each period's negative/neutral/positive/reviewsCount default to 0 and starRating defaults to "N/A": a 0 count
with "N/A" rating means "no feedback in that window", not "zero stars" or missing data.
Helpers: sellermagnet.py and retry.py from https://sellermagnet-api.com/blog/amazon-product-api-python
"""
import re
import requests
from retry import get_with_retry
from sellermagnet import ApiError, new_session
SELLER_ID = "A2PANEUSELLER1" # illustrative: a pan-EU third-party seller
MARKETS = {"DE": "A1PA6795UKMFR9", "FR": "A13V1IB3VIYZZH", "IT": "APJ6JRA9NG5V4", "ES": "A1RKKUPIHCS9HS"}
PERIODS = ("30d", "90d", "365d", "lifetime")
MAX_FAILED = 3 # 502/503 are billed on every attempt: stop after 3 calls that keep failing
def row(marketplace_code, data):
"""One print line per marketplace: name, per-period counts, avg rating, or why there is no row."""
fb = data["feedback"]
counts = " ".join(f"{p}={fb['reviewsCount'][p]}" for p in PERIODS)
stars = " ".join(f"{p}:{fb['starRating'][p]}" for p in PERIODS)
print(f"{marketplace_code:<4} {data['sellerFullName']:<20} avg={data['sellerAvgRating']:.2f} {counts}")
print(f" starRating {stars}")
def main():
session = new_session()
seller_id = SELLER_ID.strip()
if not re.fullmatch(r"[A-Za-z0-9]{1,32}", seller_id):
print(f"skipped: '{SELLER_ID}' is not a valid sellerId shape (the API would free-gate-400 it anyway)")
return
failed = 0
for code, marketplace in MARKETS.items():
if failed >= MAX_FAILED:
print(f"stopped after {MAX_FAILED} failed calls")
return
try:
data = get_with_retry(session, "amazon-seller-review", sellerId=seller_id, marketplaceId=marketplace)
except ApiError as err:
if err.status in (401, 403): # key or credits: every other call fails the same way
print(f"stopped: {err}")
return
if err.status == 404:
print(f"{code:<4} billed 404: {err}") # no storefront on this marketplace - still charged
else:
print(f"{code:<4} error {err}")
failed += err.status >= 500
continue
except (requests.ConnectionError, requests.Timeout) as err:
print(f"{code:<4} error {type(err).__name__}")
failed += 1
continue
row(code, data)
if __name__ == "__main__":
main()
Output (illustrative data: three stores answering, one retried 502 then a billed 404)
DE EU Handel GmbH avg=4.78 30d=25 90d=74 365d=300 lifetime=1000
starRating 30d:97% positive 90d:96% positive 365d:95% positive lifetime:94% positive
FR EU Handel GmbH avg=4.83 30d=6 90d=15 365d=56 lifetime=128
starRating 30d:100% positive 90d:N/A 365d:N/A lifetime:N/A
IT billed 404: 404: Seller name not found
ES EU Handel GmbH avg=4.91 30d=3 90d=10 365d=34 lifetime=93
starRating 30d:100% positive 90d:N/A 365d:N/A lifetime:N/A
calls= 5
- billed 404 on amazon.it is not a bug or a missing seller: the same seller answers normally on DE, FR and ES. Read it as "no storefront here", not "seller gone".
- starRating "N/A" for 90d/365d/lifetime on FR and ES is a valid, common shape: the page simply has no rendered rating text for those periods for this seller, even though
reviewsCountfor the same periods is not 0. - sellerAvgRating differs per marketplace (4.78 / 4.83 / 4.91) for the same underlying seller: it is computed per store from that store's own feedback, not a single global number.
- a 502 retried once, then a 404 on amazon.it shows both billed outcomes in one marketplace: the retry was worth trying (502 is retryable), the eventual 404 was not.

What does checking a seller across 4 marketplaces cost?
1 credit per marketplace checked, as on every endpoint. The example run made 5 calls for 4 marketplaces: 1 each for DE, FR and ES, and 2 for IT (one retried 502, then the confirmed 404). A billed retry costs a credit on every attempt; a 500 without Retry-After is refunded, a 502 or 503 never is. A free gate 400 (a malformed sellerId or an unknown marketplaceId) costs nothing, which is why filtering the shape client-side before paying only saves a round trip, not a credit. For a single-marketplace feedback trend and verdict instead of a cross-marketplace check, see the seller feedback API; the seller reviews endpoint page lists every field, and a free account includes 150 credits.
Frequently Asked Questions
Is there a bulk endpoint to check a seller on every marketplace at once?
No. /amazon-seller-review takes one sellerId and one marketplaceId per call. Checking the same seller on 4 stores is 4 separate calls and 4 credits, whether or not the seller has a storefront on each one.
Does a 404 mean the seller does not exist at all?
No, it means the seller has no storefront on THAT marketplace (or, for a first-party Amazon seller ID, no storefront page ever exists). The same sellerId can answer normally on another marketplace. Both kinds of 404 are billed.
Why is starRating sometimes "N/A" even though reviewsCount is not 0?
starRating comes from rendered page text that is not always present for every period; when it is missing the field defaults to "N/A" even though the counts for that period were read from a different part of the page. Read reviewsCount and starRating independently.
Is sellerAvgRating Amazon's own seller rating?
No. It is computed by the API from the 365-day positive/neutral/negative counts (weights 5/3/1), to 2 decimals. Amazon does not publish a single numeric seller rating on the feedback page itself.
Should I retry a 404 from the seller feedback endpoint?
No. A 404 is a confirmed answer (no storefront there), not a transient failure, and retrying it only spends more credits for the same result. A 503 SELLER_FETCH_UNAVAILABLE is the retryable case.
Bottom line: budget one credit per marketplace per seller you check, treat a 404 as a real, billed answer rather than a bug, and read reviewsCount and starRating independently since either one can be 0 or "N/A" without the other being empty. To find a seller ID in the first place, see Amazon seller ID lookup; for automated alerts on new negative feedback, see the negative feedback alert guide.