GET /v1/products/{id}/reviews
Reviews summary + sample top reviews for a Walmart product.
Request
GET /v1/products/{id}/reviews?start_date=2026-01-01&end_date=2026-05-09Query parameters
| Name | Description |
|---|---|
start_date | Filter reviews from this date (ISO YYYY-MM-DD). Optional. |
end_date | Filter reviews to this date. Optional. Defaults to today. |
Response
{
"identifier": "443574645",
"summary": {
"average_rating": 4.39,
"total_reviews": 438,
"sentiment": { "positive": 60, "neutral": 392, "negative": 15 },
"verified_purchases": 428,
"non_verified_purchases": 10,
"rating_distribution": null
},
"monthly_breakdown": [
{
"month": "2026-04",
"total_reviews": 11,
"average_rating": 3.64,
"sentiment": { "positive": 0, "neutral": 11, "negative": 0 }
},
...
],
"top_reviews": [],
"tokens_consumed": 3,
"tokens_remaining": 9994
}Field notes
summary.average_ratingis a weighted average across all monthly buckets (rating × reviews / total).summary.sentimentrolls up positive/neutral/negative counts;monthly_breakdown[]keeps the per-month split so you can chart sentiment trend.rating_distribution(per-star histogram) is currentlynullon most items — upstream doesn't expose the raw 1–5 split. Usesentimentas the modern signal.top_reviewscontains individual review bodies when available. It can be empty on items where upstream only ships aggregates — checkmonthly_breakdownlength to know whether there's data.
Cost
3 tokens per call.
Notes
- Walmart-only today. Cross-retailer review aggregation ships in Phase 4.
- Date-range filtering (
start_date/end_date) filters the monthly buckets server-side.