Home / Blog / Amazon Seller Feedback API: Ratings and Recent Feedback for Any Seller ID

Amazon Seller Feedback API: Ratings and Recent Feedback for Any Seller ID

One request returns a seller's feedback counts for the last 30, 90 and 365 days and lifetime, the star rating per period and up to five recent comments. How the positive, neutral and negative counts are defined, how to spot a seller whose rating is sliding, and how to vet every seller on a listing.

September 21, 2026
3 min read
SellerMagnet Team
Share & Bookmark
Blueprint flow from a seller ID through the seller feedback API to rating counts per period and a trend check

To get an Amazon seller's feedback as JSON, call the SellerMagnet /api/amazon-seller-review endpoint with the seller ID and marketplace. The response carries the seller's name, how many positive, neutral and negative ratings they received in the last 30, 90 and 365 days and over their lifetime, the star rating Amazon shows for each period, and up to five of the most recent feedback comments. One request costs one credit.

Key Takeaways

  • Feedback comes as counts per period - 30d, 90d, 365d and lifetime - not as percentages.
  • positive counts 4- and 5-star ratings, neutral 2- and 3-star, negative 1-star.
  • A rising negative share in the last 90 days against the lifetime share is the early warning.
  • sellerId values come from the offers endpoint; Amazon's own offer ("Amazon", or any offer with amazonSellerId set) has no feedback page and returns a billed 404.
  • recentFeedback holds up to five of the latest comments with their star rating.

What does the seller feedback API return?

The endpoint reads the seller's storefront page on that marketplace. Feedback on Amazon is per marketplace, so the same seller ID can look very different on amazon.de and amazon.com. Each of the rating objects is keyed by period, and reviewsCount is the total per period.

Response from /api/amazon-seller-review (example values)

{
  "success": true,
  "data": {
    "sellerId": "A1CWSGXIR635I6",
    "marketplaceId": "ATVPDKIKX0DER",
    "marketplace_name": "Amazon US",
    "sellerFullName": "Example Store",
    "sellerTotalReviewAmount": 1535,
    "sellerAvgRating": 4.32,
    "feedback": {
      "positiveRating": {"30d": 4, "90d": 20, "365d": 90, "lifetime": 1380},
      "neutralRating": {"30d": 1, "90d": 3, "365d": 9, "lifetime": 55},
      "negativeRating": {"30d": 2, "90d": 7, "365d": 15, "lifetime": 100},
      "reviewsCount": {"30d": 7, "90d": 30, "365d": 114, "lifetime": 1535},
      "starRating": {"30d": "3.3", "90d": "3.6", "365d": "3.9", "lifetime": "4.5"},
      "recentFeedback": [
        {"text": "great", "rating": 5, "starRatingText": "5 out of 5 stars",
         "dateRated": "By gary kraus on June 5, 2025."}
      ]
    }
  }
}
The feedback fields.
FieldShapeMeaning
positiveRating{30d, 90d, 365d, lifetime} integersNumber of 4- and 5-star ratings
neutralRatingsameNumber of 2- and 3-star ratings
negativeRatingsameNumber of 1-star ratings
reviewsCountsameRatings per period (the three above added up)
starRating{30d, 90d, 365d, lifetime} stringsRating text Amazon shows per period; N/A when absent
recentFeedbacklist of up to 5text, rating (1-5 or N/A), starRatingText, dateRated
sellerAvgRatingnumberOur 365-day approximation: negative = 1, neutral = 3, positive = 5 stars
sellerTotalReviewAmountintegerLifetime number of ratings

Not Amazon's own split

Amazon's feedback page calls 1 and 2 stars negative and 3 stars neutral. This API counts 2 stars as neutral, so its negative share is slightly lower than the one on the page. Compare sellers with each other through the API, and treat sellerAvgRating as an approximation - the star rating Amazon itself shows is in starRating.

How do I spot a seller whose rating is getting worse?

Lifetime feedback moves slowly; a seller with thousands of old ratings can be failing today and still look fine. Compare the negative share of the last 90 days with the lifetime share. A 90-day share several times the lifetime one, over enough ratings to mean something, is the signal - late shipments and wrong items show up there months before the lifetime number moves.

Blueprint bar chart of an example seller's negative feedback share per period, rising from lifetime to the last 30 days
A healthy lifetime share can hide a bad quarter - compare the periods.

seller_check.py - verdict from the feedback trend

import os

import requests


def seller_feedback(seller_id: str, marketplace_id: str) -> dict | None:
    if seller_id.strip().lower() == "amazon":
        return None                        # Amazon's own offer has no feedback page (billed 404)
    resp = requests.get("https://sellermagnet-api.com/api/amazon-seller-review",
                        params={"sellerId": seller_id, "marketplaceId": marketplace_id},
                        headers={"X-Api-Key": os.environ["SELLERMAGNET_API_KEY"]}, timeout=120)
    try:
        body = resp.json()
    except ValueError:  # e.g. an HTML error page from a proxy
        body = {}
    if resp.status_code == 404:
        return None                        # seller no longer exists on that marketplace
    if resp.status_code != 200 or not body.get("success"):
        raise RuntimeError(f"{seller_id}: {resp.status_code} {body.get('message')}")
    return body["data"]


def negative_share(feedback: dict, period: str) -> tuple[float, int]:
    total = feedback["reviewsCount"][period]
    return (feedback["negativeRating"][period] / total if total else 0.0), total


def verdict(data: dict) -> str:
    fb = data["feedback"]
    recent, n_recent = negative_share(fb, "90d")
    lifetime, n_life = negative_share(fb, "lifetime")
    if n_life < 50:
        return "new seller - too little feedback to judge"
    if n_recent >= 10 and recent >= max(0.15, 3 * lifetime):
        return f"avoid - {recent:.0%} negative in 90 days vs {lifetime:.0%} lifetime"
    if n_recent >= 10 and recent >= 2 * lifetime:
        return f"watch - negative share doubled ({recent:.0%} vs {lifetime:.0%})"
    return f"ok - {recent:.0%} negative in 90 days"


data = seller_feedback("A1CWSGXIR635I6", "ATVPDKIKX0DER")
print(f'{data["sellerFullName"]} -> {verdict(data)}' if data else "no feedback page (Amazon itself or seller gone)")

How do I vet every seller on a listing?

Take the seller IDs from the offer listing endpoint, skip "Amazon", and check each once. A listing with eight third-party sellers costs one credit for the offers plus eight for the feedback. Feedback changes slowly, so cache results for a week rather than checking a seller on every price poll.

Seller name and 90-day counts with curl and jq

curl -sG "https://sellermagnet-api.com/api/amazon-seller-review" \
  -H "X-Api-Key: $SELLERMAGNET_API_KEY" \
  --data-urlencode "sellerId=A1CWSGXIR635I6" \
  --data-urlencode "marketplaceId=ATVPDKIKX0DER" \
  | jq -r '.data | [.sellerFullName, .feedback.reviewsCount["90d"], .feedback.negativeRating["90d"]] | @tsv'
Blueprint table of the example seller's positive, neutral and negative counts for each period
The same seller, four windows: the recent ones tell the story.

A seller ID that no longer exists on the marketplace returns a billed 404, and a page Amazon blocked returns a 502 that is worth retrying later; the error-handling guide covers both.

Frequently Asked Questions

Is there an API for Amazon seller feedback?

Yes. /api/amazon-seller-review returns a seller's positive, neutral and negative rating counts for 30, 90 and 365 days and lifetime, the star rating per period and up to five recent comments.

Where do I get a seller ID?

From the offers endpoint: every offer carries sellerId. It is also the seller= value in the URL of a seller's storefront on Amazon.

Are the ratings percentages?

No. positiveRating, neutralRating and negativeRating are counts per period; divide by reviewsCount for shares.

Why does Amazon's own offer return 404?

Amazon as a seller has no storefront feedback page. Skip sellerId "Amazon" and offers with amazonSellerId set - the call is billed like any 404.

Is feedback the same on every marketplace?

No. Feedback is collected per marketplace, so query the marketplace you care about.

Bottom line: counts per period, positive 4-5 stars and negative 1 star, compare the last 90 days with lifetime, and skip Amazon itself. The seller feedback page shows the endpoint, and a free account includes 150 credits.

Ready to Extract Amazon Data at Scale?

Start building with SellerMagnet API today. Real-time product data, competitive pricing, and review analytics at your fingertips.

150 free API credits • No credit card required • Cancel anytime