ScavioScavio
FeaturesPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Get Amazon Product Reviews via API
Tutorial

How to Get Amazon Product Reviews via API

Fetch Amazon product reviews programmatically using the Scavio API. Extract ratings, review text, and reviewer metadata for sentiment analysis or NLP.

Get Free API KeyAPI Docs

Amazon product reviews are a rich source of customer sentiment data, product improvement signals, and competitive intelligence. Scraping Amazon reviews directly is unreliable due to aggressive bot detection and CAPTCHA challenges. The Scavio API provides a reviews endpoint that returns structured review data for any ASIN, including star rating, review title, review body, reviewer name, date, and verified purchase status. This tutorial demonstrates how to fetch reviews, filter by rating, and prepare data for sentiment analysis.

Prerequisites

  • Python 3.8 or higher
  • requests library installed
  • A Scavio API key
  • An Amazon ASIN to fetch reviews for

Walkthrough

Step 1: Fetch reviews for a product ASIN

POST to the Scavio Amazon endpoint with the action reviews and your ASIN. The response includes a reviews array.

Python
def get_reviews(asin: str) -> list[dict]:
    response = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "amazon", "query": asin, "marketplace": "US"}
    )
    response.raise_for_status()
    return response.json().get("reviews", [])

Step 2: Filter by star rating

Segment reviews by rating to analyze positive and negative feedback separately.

Python
def filter_by_stars(reviews: list[dict], stars: int) -> list[dict]:
    return [r for r in reviews if r.get("rating") == stars]

negative = filter_by_stars(reviews, 1) + filter_by_stars(reviews, 2)
positive = filter_by_stars(reviews, 4) + filter_by_stars(reviews, 5)

Step 3: Extract review text for NLP

Build a list of review bodies for input to a sentiment analysis model or topic extraction pipeline.

Python
texts = [r["body"] for r in reviews if r.get("body")]
print(f"Collected {len(texts)} review texts for NLP")
print(texts[0][:200])

Step 4: Compute rating distribution

Count reviews by star rating to understand the overall sentiment distribution for the product.

Python
from collections import Counter

distribution = Counter(r.get("rating") for r in reviews)
for stars in sorted(distribution):
    print(f"{stars} star: {distribution[stars]} reviews")

Python Example

Python
import os
from collections import Counter
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def get_reviews(asin: str) -> list[dict]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"platform": "amazon", "query": asin, "marketplace": "US"})
    r.raise_for_status()
    return r.json().get("reviews", [])

def summarize(reviews: list[dict]) -> None:
    dist = Counter(r.get("rating") for r in reviews)
    for stars in sorted(dist, reverse=True):
        print(f"{stars}*: {dist[stars]} reviews")
    texts = [r["body"] for r in reviews if r.get("body")]
    print(f"\n{len(texts)} reviews with text available for NLP")

if __name__ == "__main__":
    reviews = get_reviews("B09G9FPHY6")
    summarize(reviews)

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function getReviews(asin) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ platform: "amazon", query: asin, marketplace: "US" })
  });
  const data = await res.json();
  return data.reviews || [];
}

async function main() {
  const reviews = await getReviews("B09G9FPHY6");
  const dist = reviews.reduce((acc, r) => {
    acc[r.rating] = (acc[r.rating] || 0) + 1; return acc;
  }, {});
  Object.entries(dist).sort().reverse().forEach(([s, c]) => console.log(`${s}*: ${c}`));
}
main().catch(console.error);

Expected Output

JSON
{
  "reviews": [
    {
      "title": "Great sound quality",
      "body": "The bass response is excellent and the ANC works well...",
      "rating": 5,
      "reviewer": "John D.",
      "date": "2026-02-14",
      "verified_purchase": true
    },
    {
      "title": "Good but battery life could be better",
      "body": "I love the comfort and sound but 20 hours isn't enough...",
      "rating": 3,
      "reviewer": "Sarah M.",
      "date": "2026-01-28",
      "verified_purchase": true
    }
  ]
}

Related Tutorials

  • How to Monitor Amazon Prices Across Multiple ASINs
  • How to Aggregate Product Reviews from Multiple Sources

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8 or higher. requests library installed. A Scavio API key. An Amazon ASIN to fetch reviews for. A Scavio API key gives you 250 free credits per month.

Yes. The free tier includes 250 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best Amazon Product APIs to Replace Scrapers (2026)

Read more
Best Of

Best Amazon Product API in 2026

Read more
Glossary

Amazon Product Data API

Read more
Solution

Replace Amazon Scrapers with Product Search API

Read more
Use Case

Amazon Scraper to API Migration

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more

Start Building

Fetch Amazon product reviews programmatically using the Scavio API. Extract ratings, review text, and reviewer metadata for sentiment analysis or NLP.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy