Documentation Index
Fetch the complete documentation index at: https://docs.descripio.com/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Prefer Postman? Skip the manual steps — import our pre-configured collection and start making real API calls in under a minute.Download Postman Collection →Import the file into Postman: File → Import, paste the URL or drop the downloaded file. Your baseUrl, asin, marketplace variables are pre-filled. Just set your apiKey.
Step 1: Get Your API Key
- Sign up at app.descripio.com
- Navigate to Developer → API Keys
- Click “Create API Key”
- Copy your key (starts with
dscr_)
⚠️ Save your key securely. It won’t be shown again after creation.
Step 2: Trigger a Review Refresh
Replace YOUR_API_KEY with your actual key:
curl -X POST https://app.descripio.com/api/v1/reviews/refresh \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"asin": "B08N5WRWNW",
"marketplace": "amazon.de"
}'
Response (HTTP 202 Accepted):
{
"jobId": 2877,
"asin": "B08N5WRWNW",
"status": "queued",
"message": "Review refresh job created successfully",
"estimatedCompletionSeconds": 60
}
Step 3: Poll Job Status (With Timeout)
Python (Recommended):
import requests
import time
API_KEY = "YOUR_API_KEY"
job_id = 2877
max_attempts = 24 # 2 minutes max (5s interval)
attempt = 0
while attempt < max_attempts:
response = requests.get(
f"https://app.descripio.com/api/v1/jobs/{job_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
job = response.json()
status = job.get("status")
if status == "completed":
print("Job complete!")
break
elif status == "failed":
print("Job failed!")
break
elif status == "unknown":
print("Unexpected job status. Please retry.")
break
print(f"Status: {status}, waiting...")
time.sleep(5) # Wait 5 seconds before next poll
attempt += 1
if attempt >= max_attempts:
print("Timeout: Job took longer than expected")
Possible job statuses: queued, processing, completed, failed, unknown.
cURL (Manual polling):
curl https://app.descripio.com/api/v1/jobs/2877 \
-H "Authorization: Bearer YOUR_API_KEY"
Response (when complete):
{
"jobId": 2877,
"asin": "B08N5WRWNW",
"productTitle": "Example Product Title",
"status": "completed",
"createdAt": "2026-02-02T10:30:00.000Z",
"updatedAt": "2026-02-02T10:31:05.000Z"
}
Step 4: Fetch Reviews
curl "https://app.descripio.com/api/v1/reviews?asin=B08N5WRWNW" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"asin": "B08N5WRWNW",
"title": "Example Product Title",
"imageUrl": "https://m.media-amazon.com/images/...",
"marketplace": "amazon.de",
"reviewCount": 156,
"reviews": [
{
"id": 12345,
"amazonReviewId": "R1ABC123DEF",
"title": "Great product!",
"content": "I've been using this for a month and...",
"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
}
If the ASIN has no cached data yet, the endpoint returns 404 Not Found:
{
"asin": "B08N5WRWNW",
"reviews": [],
"cached": false,
"message": "No cached data. Create a refresh job first."
}
Next Steps