Amazon Reviews
Endpoint reference for /v1/amazon/product/reviews.
POST
/v1/amazon/product/reviews Authentication
Requires a managed amazon.com login on kernel. Browsable automatically uses a saved login when one is available.
If your team does not already have a usable login, the API returns 428 Authentication required with a
hosted_url. Open that URL, finish sign-in, then retry the same request.
Request Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| asin | body | string | No | Amazon product ASIN (10-character alphanumeric code) |
| domain | body | string | No | Amazon domain (e.g., amazon.com, amazon.co.uk) |
| maxReviews | body | integer | No | Maximum number of reviews to scrape (omit for all reviews) |
| url | body | string | No | Amazon product URL (alternative to ASIN) |
Response Structure
Async kickoff response
Polled run result response
Sync response
Authentication required response
Declared output schema
Code Examples
Async + polling
RUN=$(curl -s -X POST "https://api.browsable.app/v1/amazon/product/reviews" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asin":"sample","domain":"amazon.com","maxReviews":1,"url":"https://www.amazon.com/dp/B004XAKAYE"}')
RUN_ID=$(echo "$RUN" | jq -r '.run_id')
while true; do
RESULT=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://api.browsable.app/v1/runs/$RUN_ID")
STATUS=$(echo "$RESULT" | jq -r '.run_status')
if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then
echo "$RESULT"
break
fi
sleep 2
doneSync
curl -X POST "https://api.browsable.app/v1/amazon/product/reviews" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asin":"sample","domain":"amazon.com","maxReviews":1,"url":"https://www.amazon.com/dp/B004XAKAYE","_run":{"async":false}}'