Get cached reviews for an ASIN
curl --request GET \
--url https://app.descripio.com/api/v1/reviews \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.descripio.com/api/v1/reviews"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.descripio.com/api/v1/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.descripio.com/api/v1/reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.descripio.com/api/v1/reviews"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.descripio.com/api/v1/reviews")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.descripio.com/api/v1/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"asin": "B08N5WRWNW",
"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"
}
],
"cached": true,
"title": "Example Product Title",
"imageUrl": "https://m.media-amazon.com/images/I/example.jpg",
"marketplace": "amazon.de",
"lastScraped": "2026-02-02T10:31:00.000Z"
}{
"error": "Missing asin parameter"
}{
"error": "Invalid API key",
"message": "Unable to process request. Please retry in a few moments.",
"retryable": true
}{
"asin": "B08N5WRWNW",
"reviews": [],
"cached": false,
"message": "No cached data. Create a refresh job first."
}{
"error": "Invalid API key",
"message": "Unable to process request. Please retry in a few moments.",
"retryable": true
}API Reference
GET /reviews
Fetch cached review data for an ASIN
GET
/
api
/
v1
/
reviews
Get cached reviews for an ASIN
curl --request GET \
--url https://app.descripio.com/api/v1/reviews \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.descripio.com/api/v1/reviews"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.descripio.com/api/v1/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.descripio.com/api/v1/reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.descripio.com/api/v1/reviews"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.descripio.com/api/v1/reviews")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.descripio.com/api/v1/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"asin": "B08N5WRWNW",
"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"
}
],
"cached": true,
"title": "Example Product Title",
"imageUrl": "https://m.media-amazon.com/images/I/example.jpg",
"marketplace": "amazon.de",
"lastScraped": "2026-02-02T10:31:00.000Z"
}{
"error": "Missing asin parameter"
}{
"error": "Invalid API key",
"message": "Unable to process request. Please retry in a few moments.",
"retryable": true
}{
"asin": "B08N5WRWNW",
"reviews": [],
"cached": false,
"message": "No cached data. Create a refresh job first."
}{
"error": "Invalid API key",
"message": "Unable to process request. Please retry in a few moments.",
"retryable": true
}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:| Header | Value | Required |
|---|---|---|
| Authorization | Bearer YOUR_API_KEY | Yes |
| Parameter | Type | Required | Description |
|---|---|---|---|
| asin | string | Yes | Amazon 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
}
| Field | Type | Description |
|---|---|---|
| asin | string | Amazon ASIN |
| title | string | Product title |
| imageUrl | string | Product image URL |
| marketplace | string | Amazon marketplace |
| reviewCount | number | Total number of cached reviews |
| reviews | array | Array of review objects |
| lastScraped | string | ISO 8601 timestamp of last refresh |
| cached | boolean | Whether data is from cache |
Review Object
| Field | Type | Description |
|---|---|---|
| id | number | Internal review ID |
| amazonReviewId | string | Amazon’s review ID |
| title | string | Review headline |
| content | string | Full review text |
| date | string | Review date (ISO 8601) |
| isTopReview | boolean | Whether this is a “Top Review” |
| country | string | Reviewer’s country code |
| scrapedAt | string | When 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
| Status | Error | Cause |
|---|---|---|
| 400 | Missing asin | asin query parameter not provided |
| 401 | Invalid API key | Key doesn’t exist or was revoked |
| 404 | No cached data | ASIN hasn’t been refreshed yet |
| 500 | Internal server error | Temporary backend/service issue |
Examples
cURL:curl "https://app.descripio.com/api/v1/reviews?asin=B08N5WRWNW" \
-H "Authorization: Bearer dscr_abc123..."
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.")
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
- Full Review Text: Get up to 200 reviews per ASIN (10 pages recent + 10 pages helpful).
- Free: This endpoint is free and unlimited - only refresh jobs count toward quota
Authorizations
API key passed in Authorization header as Bearer token.
Query Parameters
Pattern:
^[A-Z0-9]{10}$Response
Cached reviews found
Example:
"B08N5WRWNW"
Example:
156
Show child attributes
Show child attributes
Available options:
true Example:
true
Example:
"Example Product Title"
Example:
"https://m.media-amazon.com/images/I/example.jpg"
Example:
"amazon.de"
Example:
"2026-02-02T10:31:00.000Z"
⌘I