Walmart Scraper
Pricing
from $1.20 / 1,000 product scrapeds
Walmart Scraper
Scrape Walmart search, category, and product pages. Extract listing data with optional product details and nested reviews. Supports ZIP-based pickup/delivery context.
Pricing
from $1.20 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Farhan Ali
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Share
Walmart Scraper creates a structured dataset of product records collected from Walmart.com. Each dataset item represents one product and can include the item identifier, title, brand, price, rating, review count, availability, seller, store context, and β when enabled β full product details and nested customer reviews. Query the source using search keywords or Walmart search, category, or product URLs, control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or HTML.
Dataset at a glance
| Property | Value |
|---|---|
| Source | walmart.com |
| Record unit | One product listing |
| Input methods | Search keywords, search/category/product URLs, optional US ZIP code |
| Main identifiers | usItemId, url |
| Delivery | Apify Dataset and API |
| Export formats | JSON, CSV, Excel, HTML |
| Update model | Fresh records per Actor run |
| Pricing | Pay per event, from $1.50 per 1,000 products |
Coverage and available records
The Actor collects products from three source types:
- Search results β products returned for one or more
searchQueries. - Category/browse pages β products on
/browseand/cpURLs. - Product pages β a single product given a
/ipURL.
Supported behavior:
- Optional US ZIP code (
zipCode) sets store pickup/delivery context, andfulfillmentMethodfilters listings toPickup,Delivery, orShipping. - Optional product details (
scrapeProductDetails) enriches each product with description, images, and category path. - Optional product reviews (
scrapeProductReviews) attaches a nestedreviewsarray to each product row; reviews are never stored as separate dataset rows. - Pagination and result limits are controlled with
maxPagesandmaxItems(0= unlimited).
Fields such as description, categoryPath, storeName, and reviews are conditional and present only when the corresponding option is enabled or when Walmart returns the value.
Data dictionary
| Field | Type | Nullable | Description | Example |
|---|---|---|---|---|
sourceQuery | string | No | Search term or URL that produced the record | tomatoes |
usItemId | string | No | Walmart item identifier | 930274152 |
name | string | No | Product title | Fresh Roma Tomato, Each |
brand | string | Yes | Product brand | Marketside |
url | string | No | Product page URL | https://www.walmart.com/ip/930274152 |
imageUrl | string | Yes | Primary product image URL | https://i5.walmartimages.com/... |
price | number | Yes | Current price | 0.98 |
currency | string | Yes | Price currency code | USD |
unitPrice | string | Yes | Per-unit price label | $0.98 each |
averageRating | number | Yes | Aggregate star rating | 4.5 |
numberOfReviews | number | Yes | Total review count | 182 |
availabilityStatus | string | Yes | Stock status | In stock |
sellerName | string | Yes | Seller name | Walmart |
zipCode | string | Yes | ZIP used for store context | 72076 |
storeName | string | Yes | Store name when ZIP is set | Supercenter #5700 |
description | string | Yes | Full product description (details enabled) | ... |
categoryPath | array | Yes | Category breadcrumb (details enabled) | ["Food", "Produce"] |
reviewsScraped | number | Yes | Count of attached reviews | 20 |
reviews | array | Yes | Nested review objects (reviews enabled) | [{...}] |
Use usItemId (fallback url) as the stable field for deduplication.
Example dataset record
{"sourceQuery": "tomatoes","usItemId": "930274152","name": "Fresh Roma Tomato, Each","brand": "Marketside","url": "https://www.walmart.com/ip/930274152","imageUrl": "https://i5.walmartimages.com/asr/example.jpeg","price": 0.98,"currency": "USD","unitPrice": "$0.98 each","averageRating": 4.5,"numberOfReviews": 182,"availabilityStatus": "In stock","sellerName": "Walmart","zipCode": "72076","storeName": "Supercenter #5700"}
This record was produced by a search for tomatoes with zipCode set to 72076 and details/reviews disabled.
Query and input reference
| Input | Type | Required | Default | Accepted values | Description |
|---|---|---|---|---|---|
searchQueries | array | No | ["tomatoes"] | Any strings | Keywords to search on Walmart.com. |
startUrls | array | No | β | Search, /browse, /cp, /ip URLs | Walmart URLs to start from. |
zipCode | string | No | β | US ZIP | Sets store pickup/delivery context. |
fulfillmentMethod | string | No | β | Pickup, Delivery, Shipping | Fulfillment filter after ZIP is set. |
scrapeProductDetails | boolean | No | false | true / false | Fetch full product details (billed as product-details). |
scrapeProductReviews | boolean | No | false | true / false | Attach nested reviews (billed as product-reviews). |
maxReviews | integer | No | 20 | 0 = all | Max reviews attached per product. |
maxItems | integer | No | 0 | 0 = unlimited | Max product records. |
maxPages | integer | No | 0 | 0 = unlimited | Max listing pages per query/URL. |
maxConcurrency | integer | No | 5 | 1β20 | Parallel workers for details/reviews. |
proxyConfiguration | object | No | Apify residential | Proxy editor | Proxy settings. |
Minimal request:
{ "searchQueries": ["tomatoes"], "maxItems": 20 }
Advanced request (store context plus details and reviews):
{"searchQueries": ["tomatoes"],"zipCode": "72076","fulfillmentMethod": "Pickup","scrapeProductDetails": true,"scrapeProductReviews": true,"maxReviews": 20,"maxItems": 100,"maxPages": 1,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Retrieve the data through the API
- Start the Actor with a JSON input.
- Wait for the run to finish, or use the synchronous endpoint for small jobs.
- Retrieve items from the run's default dataset.
- Paginate or export the dataset.
Python example:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("datascrapers/walmart-scraper").call(run_input={"searchQueries": ["tomatoes"], "maxItems": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item.get("price"))
For other languages, use the generated API tab on the Actor page.
Data quality and record handling
- Completeness β listing fields (
usItemId,name,url,price) are returned when Walmart exposes them; enrichment fields are conditional on the corresponding option. - Source changes β Walmart page structure changes can cause individual fields to come back empty; rows are still written with the fields that were found.
- Deduplication β the Actor writes one row per product per run and does not persist dedup state across runs. Deduplicate on
usItemId(fallbackurl) when merging runs. - Retry/error behavior β detail and review enrichment fail soft, so a failed detail call does not discard the listing row already collected.
- Normalization β
priceis numeric with a separatecurrencycode;unitPricekeeps Walmart's display string. - Raw vs derived β
averageRatingandnumberOfReviewsare read from the listing;reviewsScrapedcounts the reviews the Actor attached.
Export and pipeline examples
| Destination | Recommended method | Typical use |
|---|---|---|
| PostgreSQL/Supabase | Dataset API or webhook consumer | Store product snapshots for dashboards |
| Google Sheets | Apify integration | Share price/availability tables |
| S3/cloud storage | Scheduled export or integration | Archive daily catalog snapshots |
Pricing and cost examples
Billing is pay per event. You are not charged Apify platform usage on top of these events.
| Event | When charged | Price |
|---|---|---|
product | Each product row written | $1.50 per 1,000 |
product-details | Each product with details fetched (when enabled) | $1.50 per 1,000 |
product-reviews | Each individual review attached (when enabled) | $1.50 per 1,000 |
| Records | Estimated base cost |
|---|---|
| 1,000 products | $1.50 |
| 10,000 products | $15.00 |
Estimates assume listings only. Details and reviews add events at the same rate, and Apify plan discounts may reduce the per-event price.
Limitations and responsible data use
- The Actor reads publicly accessible Walmart.com listing data.
- Availability and source changes can produce empty or partial fields.
- No guarantee of historical snapshots unless you store results yourself.
- You are responsible for compliance with applicable terms, privacy, and legal requirements when using the data.
Dataset questions
What does one dataset item represent?
One Walmart product listing. Reviews and product details are nested on the same row rather than written as separate items.
Which field should I use as a unique identifier?
usItemId is the most stable Walmart item identifier; use url as a fallback.
Are fields nullable or conditional?
Many listing fields (brand, averageRating, sellerName) are null when Walmart does not return them. Enrichment fields (description, categoryPath, reviews) are present only when the matching option is enabled.
Can I retrieve the records as CSV or JSON?
Yes. Export from the Output tab as JSON, CSV, Excel, or HTML, or read the dataset through the Apify API.
How do I paginate large datasets?
Use maxPages to limit listing pages and maxItems to cap the number of product records. For API retrieval, paginate the default dataset items endpoint.
Does the Actor return historical data?
No. Each run captures the current state of the listings at run time.
What counts as a billable result?
Each product row is a product event. When enabled, each detail fetch is a product-details event and each attached review is a product-reviews event.
Related datasets from Data Scrapers
- Target.com Product Scraper β US retail product data for cross-retailer price comparisons.
- Best Buy Product Scraper β Electronics and appliance listings that can be joined with Walmart catalog data.
- HomeDepot Scraper β Home improvement product data with delivery-ZIP context.
- Costco Product Scraper β Warehouse retailer product data for assortment analysis.
- Amazon Search Scraper β Amazon product and seller data for competitive benchmarking.
Data Scrapers support
Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.