Walmart Review Scraper API
Our Walmart review scraper takes any item URL or us_item_id and returns the overall rating, the 1-to-5 star distribution, and a page of full customer reviews: text, title, date, verified-purchase flag, and helpful-vote counts, all as JSON.
Why Walmart Review data is locked behind a block
Walmart's review text loads inside the item page's __NEXT_DATA__ blob behind a residential-only wall, so a datacenter fetch returns a challenge instead of reviews. Scraping it by hand means parsing that shifting blob and rebuilding the star breakdown yourself.
Fire off the Walmart Review Scraper API
curl "https://api.walmartscraperapi.com/api/v1/walmart/reviews?url=https://www.walmart.com/ip/808715278&api_key=$API_KEY" import requests
BASE = "https://api.walmartscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a Walmart /ip/ URL, or use the id alias for a us_item_id.
data = requests.get(
f"{BASE}/api/v1/walmart/reviews",
params={
"url": "https://www.walmart.com/ip/808715278",
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["overall_rating"], "from", data["total_reviews"], "reviews")
print("stars 5..1:", data["rating_distribution"])
for r in data["reviews"]:
tag = "verified" if r["verified_purchase"] else "unverified"
print(r["rating"], tag, r["reviewer_name"], "-", r["title"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
url | required | - | The Walmart item page URL, e.g. https://www.walmart.com/ip/808715278. This is the primary input. Required unless you pass id. |
id | optional | - | Alias for the numeric Walmart us_item_id, e.g. 808715278. We build the /ip/{id} URL from it. One of url or id is required. |
country | optional | - | Optional two-letter country code to fetch the item as seen from that region. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
The JSON the Walmart Review Scraper API hands back
{
"us_item_id": "808715278",
"overall_rating": 4.5,
"total_reviews": 4721,
"rating_distribution": {
"1": 244,
"2": 112,
"3": 216,
"4": 596,
"5": 3553
},
"reviews": [
{
"review_id": "393669526",
"reviewer_name": "Laurie",
"rating": 5,
"title": "Great Cuisinart coffeemaker",
"text": "Love the new sleek look of this Cuisinart 12 Cup Coffeemaker (DCC-1220 Series). I also like some of the new features ex, displaying how long the coffee has been brewed...",
"review_date": "7/29/2025",
"verified_purchase": true,
"positive_feedback": 3,
"negative_feedback": 0,
"badges": ["Verified Purchase"]
},
{
"review_id": "421664809",
"reviewer_name": "Robert",
"rating": 3,
"title": "Multiple Problems",
"text": "Not nearly as good as my previous Cuisinart. Coffeepot lid remains attached to coffee pot making it difficult to clean...",
"review_date": "4/4/2026",
"verified_purchase": true,
"positive_feedback": 5,
"negative_feedback": 1,
"badges": ["Verified Purchase"]
}
]
} | Field | Type | Description |
|---|---|---|
us_item_id | string | The Walmart listing id these reviews belong to. |
overall_rating | number | The item's average overall rating. |
total_reviews | integer | Total number of reviews on the item. |
rating_distribution | object | Count of reviews per star, keyed 1 through 5. |
reviews | array | The reviews on this page, each an object with the fields below. |
reviews[].review_id | string | Walmart's unique id for the review. |
reviews[].reviewer_name | string | The reviewer's display nickname. |
reviews[].rating | integer | The star rating this reviewer gave, 1 to 5. |
reviews[].title | string | The review headline, or null when the reviewer left none. |
reviews[].text | string | The full review body as plain text. |
reviews[].review_date | string | The date the review was submitted. |
reviews[].verified_purchase | boolean | True when Walmart marks the review as a verified purchase. |
reviews[].positive_feedback | integer | Count of readers who marked the review helpful. |
reviews[].negative_feedback | integer | Count of readers who marked the review unhelpful. |
reviews[].badges | array | Badge labels on the review, e.g. Verified Purchase. |
Ways teams put Walmart data to work
Product sentiment analysis
Star-distribution monitoring
Voice-of-customer feeds
Competitor review mining
Verified-purchase filtering
Review-quality signals
What powers our Walmart Review Scraper API
Pass an item URL or a us_item_id and we return the rating summary, the star breakdown, and a page of full reviews, no residential proxy pool or __NEXT_DATA__ parser to run yourself. Every request routes through residential IPs with anti-bot handling and retries, returning validated JSON in about 2.6 seconds.
URL or id input
Rating summary and breakdown
Verified-purchase flags
Residential egress and retries
Clean review text
Validated JSON schema
The Walmart Review Scraper API against every other route
| Our API | DIY (requests / headless) | Walmart.io affiliate API | |
|---|---|---|---|
| Full review text | Yes, plain text per review | Parse the review blob yourself | Not exposed as public reviews |
| Star distribution | 1-to-5 counts in every call | Rebuild it from raw fields | Not applicable |
| Reaches the page | Residential egress built in | Datacenter IPs get blocked | Affiliate feed, not reviews |
| Verified-purchase flag | Per review boolean | Parse badges manually | Not applicable |
| Setup | API key only | Proxies, headless browser, parsers | Impact Radius approval and keys |
| Access | Open signup, free tier | You build and maintain it | Affiliate program gated |
Pay for the requests that land
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
A Walmart review scraper is a tool that reads a Walmart item's public reviews and returns them in a structured format. Our Walmart review scraper API takes a product URL or us_item_id and returns the overall rating, the 1-to-5 star distribution, and a page of full reviews with text, title, date, verified-purchase flag, and helpful-vote counts as JSON.
One call returns the first page of reviews for the item, along with the overall_rating, total_reviews, and the full rating_distribution. The reviews array holds the individual reviews from that page. The summary fields describe every review on the listing, so you always see the complete rating picture even from a single request.
Yes. Each review includes a verified_purchase boolean and a badges array carrying labels such as Verified Purchase. You can filter or weight your analysis to confirmed buyers by checking that flag, which is useful when you want to discount reviews that Walmart has not tied to a purchase.
Walmart serves reviews inside the item page's __NEXT_DATA__ JSON and blocks datacenter IP ranges, so a direct fetch from a cloud server usually returns a challenge screen rather than the reviews. Our API routes through residential IPs, handles the anti-bot layer, and parses that JSON, which is why it returns structured review data where a plain request does not.
Yes. Every response includes rating_distribution, an object keyed 1 through 5 with the number of reviews at each star level, plus the overall_rating and total_reviews. That lets you chart how ratings are spread and track shifts in the distribution over time rather than watching only the single average number.
Median end-to-end response is about 2.6 seconds, which includes residential proxy routing, anti-bot handling, retries, and parsing. The rating summary, star distribution, and first page of reviews all come back in that one call.