Skip to main content

GET /api/v1/reviews

Fetch cached review data for an Amazon product.
Free & Unlimited: This endpoint doesn’t count toward your quota. Only refresh jobs are metered.

Request

Headers:
HeaderValueRequired
AuthorizationBearer YOUR_API_KEYYes
Query Parameters:
ParameterTypeRequiredDescription
asinstringYesAmazon ASIN to fetch reviews

Response (200 OK)

{
  "asin": "B08N5WRWNW",
  "title": "Example Product Title",
  "imageUrl": "https://m.media-amazon.com/images/I/...",
  "marketplace": "amazon.de",
  "reviewCount": 156,
  "reviews": [
    {
      "id": 12345,
      "amazonReviewId": "R1ABC123DEF",
      "title": "Great product!",
      "content": "I've been using this for a month and it's exactly what I needed...",
      "date": "2026-01-15T00:00:00.000Z",
      "isTopReview": true,
      "country": "DE",
      "scrapedAt": "2026-02-02T10:31:00.000Z"
    }
  ],
  "lastScraped": "2026-02-02T10:31:00.000Z",
  "cached": true
}
FieldTypeDescription
asinstringAmazon ASIN
titlestringProduct title
imageUrlstringProduct image URL
marketplacestringAmazon marketplace
reviewCountnumberTotal number of cached reviews
reviewsarrayArray of review objects
lastScrapedstringISO 8601 timestamp of last refresh
cachedbooleanWhether data is from cache

Review Object

FieldTypeDescription
idnumberInternal review ID
amazonReviewIdstringAmazon’s review ID
titlestringReview headline
contentstringFull review text
datestringReview date (ISO 8601)
isTopReviewbooleanWhether this is a “Top Review”
countrystringReviewer’s country code
scrapedAtstringWhen review was scraped

Response (404 Not Found)

When no cached data exists for an ASIN:
{
  "asin": "B08N5WRWNW",
  "reviews": [],
  "cached": false,
  "message": "No cached data. Create a refresh job first."
}

Errors

StatusErrorCause
400Missing asinasin query parameter not provided
401Invalid API keyKey doesn’t exist or was revoked
404No cached dataASIN hasn’t been refreshed yet

Examples

cURL:
curl "https://app.descripio.com/api/v1/reviews?asin=B08N5WRWNW" \
  -H "Authorization: Bearer dscr_abc123..."
Python:
import requests

response = requests.get(
    "https://app.descripio.com/api/v1/reviews",
    params={"asin": "B08N5WRWNW"},
    headers={"Authorization": "Bearer dscr_abc123..."}
)

data = response.json()

if data.get("cached"):
    print(f"Found {data['reviewCount']} reviews")
    for review in data["reviews"][:5]:
        print(f"- {review['title']}")
else:
    print("No cached data. Run a refresh job first.")
JavaScript:
const response = await fetch(
  'https://app.descripio.com/api/v1/reviews?asin=B08N5WRWNW',
  {
    headers: { 'Authorization': 'Bearer dscr_abc123...' }
  }
);

const data = await response.json();

if (data.cached) {
  console.log(`Found ${data.reviewCount} reviews`);
  data.reviews.slice(0, 5).forEach(r => console.log(`- ${r.title}`));
} else {
  console.log('No cached data. Run a refresh job first.');
}

Notes

  • Caching: Data persists until the next refresh job for that ASIN
  • Limit: Returns up to 200 most recent reviews per ASIN
  • Free: This endpoint is free and unlimited - only refresh jobs count toward quota