Ultimate Walmart Scraper
Under maintenancePricing
from $2.99 / 1,000 products
Ultimate Walmart Scraper
Under maintenanceThis is the ultimate web scraping tool for extracting the most relevant data points from products on Walmart.com! Developed by an expert software developer, this powerful scraper is a fast and reliable tool for all your web scraping needs.
Pricing
from $2.99 / 1,000 products
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Extract public Walmart product records from Walmart Canada and Walmart US search, browse, category, listing, and product pages. The Actor reads the structured payloads Walmart publishes, normalizes product identity, price, currency, availability, seller, ratings, media, category, and specifications, and can enrich a bounded number of product pages. It does not log in, solve CAPTCHAs, bypass access controls, or invent values. See Walmart and Walmart Canada for the public sources.
Get started
- Open the Actor Store page and select Try for free or open the Input tab.
- Set
marketand addstartUrls, or enter a search term throughsearchTermsorquery. - Keep
maxItems,maxDetailItems, andmaxPagessmall for a first run. Detail enrichment and reviews are separate controls. - Start the Actor, open the dataset, and export the saved records as JSON, CSV, or Excel. Open Run summary (
OUTPUT_SUMMARY) to check the outcome and counts.
Input
All fields are optional, but a run needs startUrls, a search term, or query to have a source. The defaults below are ready to use.
| Field | Type | Required? | Default | Meaning |
|---|---|---|---|---|
market | string enum | Optional | ca | Market used only when a search term generates a URL: ca or us. US URLs remain supported. |
startUrls | object array | Optional | [] | Absolute public Walmart.com or Walmart.ca product, search, category, or browse URLs. Explicit URLs take precedence over generated search terms. |
urls | object array | Optional | [] | Compatibility alias for startUrls. |
searchTerms | string array | Optional | [] | Non-empty terms converted to public Walmart search URLs when no explicit URL is supplied, up to 25 terms of 200 characters each. |
search_terms | string array | Optional | [] | Compatibility alias for searchTerms. |
queries | string array | Optional | [] | Compatibility alias for searchTerms. |
query | string | Optional | Not supplied | One search term alias, up to 200 characters. Ignored when a valid explicit URL is supplied. |
url | string | Optional | Not supplied | One URL alias for startUrls. |
maxItems | integer | Optional | 50 | Global maximum of unique product records across all URLs and pages, 1–500. |
maxPages | integer | Optional | 1 | Maximum observed search or browse pages requested per start URL, 1–10. Product URLs are fetched once. |
deduplicate | boolean | Optional | true | Deduplicate by Walmart item ID, then canonical URL, across pages and URLs. |
includeDetails | boolean | Optional | true | Fetch up to maxDetailItems product pages and merge descriptions, specifications, media, and optional reviews. |
maxDetailItems | integer | Optional | 5 | Maximum records eligible for detail enrichment, 0–50. 0 disables detail requests even when includeDetails is true. |
includeReviews | boolean | Optional | false | Include up to maxReviews public reviews from successfully enriched product pages. |
maxReviews | integer | Optional | 5 | Maximum review objects per detail-enriched record, 0–20. |
requestDelayMs | integer | Optional | 700 | Minimum pacing delay between public requests, 0–10,000 ms. Requests are sequential. |
maxRequestRetries | integer | Optional | 1 | Bounded retries for transient HTTP statuses; access challenges are never bypassed. 0–3. |
timeoutMs | integer | Optional | 30000 | Maximum time for each public HTTP request, 5,000–120,000 ms. |
userAgent | string | Optional | Not supplied | Optional transparent client user-agent, up to 300 characters. |
proxyConfiguration | object | Optional | {"useApifyProxy":false} | Optional ordinary Apify Proxy settings. Enabling it does not bypass challenges. |
Example input matching the saved wireless keyboard run:
{"query": "wireless keyboard","market": "ca","startUrls": [],"urls": [],"searchTerms": [],"search_terms": [],"queries": [],"maxItems": 3,"maxPages": 1,"deduplicate": true,"includeDetails": true,"maxDetailItems": 1,"includeReviews": false,"maxReviews": 5,"requestDelayMs": 0,"maxRequestRetries": 0,"timeoutMs": 30000,"proxyConfiguration": {"useApifyProxy": false}}
The Actor reads public Walmart pages. It does not log in or use private endpoints.
Output
The dataset contains one row per saved product. Optional values are omitted when Walmart does not publish them; they are not inferred. No diagnostic or placeholder rows are written.
| Field | Type | Availability | Meaning |
|---|---|---|---|
recordType | string | Always | Record discriminator; always walmart-product. |
status | string | Always | Record status, such as success. |
dataAvailable | boolean | Always | Whether the record contains usable public product data. |
accessStatus | string | Always | Public access state, such as public_data. |
source | string | Always | Walmart source hostname, such as walmart.ca. |
sourceTransport | string | Always | Transport used for the source request. |
extractionMethod | string | Always | Primary extraction method, such as embedded_json. |
fallbackMode | string | When published | Fallback used when structured data was unavailable. |
productId | string | Always | Stable Walmart item or product identifier. |
name | string | Always | Public product name. |
url | string | Always | Canonical public Walmart product URL. |
listingUrl | string | Always | Public search or browse page that produced the record. |
searchUrl | string | Always | Original search or browse URL for provenance. |
requestedUrl | string | When published | URL requested for the detail response. |
finalUrl | string | When published | Final URL after redirects when known. |
imageUrl | string | Always | Primary public product image URL. |
imageUrls | string array | Always | Bounded public product image URLs. |
description | string | When published | Public product description or short description. |
brand | string | When published | Public brand name. |
manufacturer | string | When published | Public manufacturer name when exposed. |
sku | string | Always | Public SKU or Walmart item number. |
gtin | string | When published | Public GTIN or UPC when exposed. |
model | string | When published | Public model identifier. |
price | number | When published | Normalized current product price. |
priceFormatted | string | When published | Source-formatted current price label. |
wasPrice | number | When published | Normalized previous or list price when exposed. |
wasPriceFormatted | string | When published | Source-formatted previous price label. |
unitPrice | number | When published | Normalized unit price when exposed. |
currency | string | Always | Price currency code. |
availability | string | When published | Public availability or stock status. |
rating | number | When published | Public average product rating. |
reviewCount | number | When published | Public product review count. |
seller | string | When published | Public seller display name. |
category | string | When published | Most specific public category name. |
breadcrumbs | string array | When published | Public category breadcrumb names. |
features | string array | When published | Bounded public feature or highlight strings. |
specifications | object | When published | Bounded public product specifications. |
fulfillment | object array | When published | Bounded delivery, pickup, or fulfillment data. |
badges | string array | When published | Public merchandising or fulfillment badges. |
sponsored | boolean | When published | Whether Walmart marked the item as sponsored. |
variantCount | number | When published | Public count of product variants when exposed. |
detailEnriched | boolean | Always | Whether a public product page was successfully merged. |
detailStatus | string | Always | Detail enrichment status. |
detailErrorCode | string | When published | Stable detail failure code when enrichment fails. |
detailError | string | When published | Bounded detail failure explanation. |
detailSourceTransport | string | When published | Transport used for the detail request. |
detailExtractionMethod | string | When published | Extraction method used for detail data. |
detailScrapedAt | string | When published | Timestamp of the detail request. |
media | object array | When published | Bounded public product media metadata. |
reviews | object array | When published | Bounded public reviews, only when requested and available. |
reviewSummary | object | When published | Public aggregate review summary. |
provenance | object | Always | Source and pagination provenance. |
pageNum | integer | Always | Page number used for the source request. |
position | integer | Always | Source-order position within the emitted result set. |
scrapedAt | string | Always | Record creation timestamp. |
The example below is a real saved row from the 2026-10-25 run. Long arrays and the description string are shortened; other scalar values are unchanged.
{"recordType": "walmart-product","status": "success","dataAvailable": true,"accessStatus": "public_data","source": "walmart.ca","sourceTransport": "got_scraping_direct","extractionMethod": "embedded_json","productId": "6000201760487","name": "Logitech Wireless Keyboard and Mouse Combo for Windows, 2.4 GHz Wireless, Compact Mouse, 8 Multimedia and Shortcut Keys, 2-Year Battery Life, for PC, Laptop - Black","url": "https://www.walmart.ca/en/ip/Logitech-Wireless-Keyboard-Mouse-Combo-Windows-2-4-GHz-Wireless-Compact-Mouse-8-Multimedia-Shortcut-Keys-2-Year-Battery-Life-PC-Laptop-Black/6000201760487?classType=VARIANT&athbdg=L1102","listingUrl": "https://www.walmart.ca/en/search?q=wireless+keyboard","searchUrl": "https://www.walmart.ca/en/search?q=wireless+keyboard","imageUrl": "https://i5.walmartimages.ca/asr/7894b734-9e39-43ec-a7bb-4b6f31bd035a.79b01ba0dd827abbd1eb8890e9ec9ec2.jpeg","imageUrls": ["https://i5.walmartimages.ca/asr/7894b734-9e39-43ec-a7bb-4b6f31bd035a.79b01ba0dd827abbd1eb8890e9ec9ec2.jpeg","https://i5.walmartimages.ca/asr/f2a67192-0397-4aa8-93e9-1ce696b3a77a.7d20a966fe8fde7e3f0c30b5d2f867d1.jpeg","https://i5.walmartimages.ca/asr/3e0165d7-845e-4297-a89e-094c34465090.5a63442d5162ba5c31902cf6bc07ec81.jpeg"],"description": "Quiet Keys Reliable Plug and Play: The USB receiver provides a reliable wireless connection up to 33 ft , so you can forget about drop-outs and delays and you can take it wherever you use your computer Long Battery Life: combo features a 36-month keyboard and 12-month mouse battery life (3), along with on/off switches allowing you to go months without the hassle of changing batteries Durable and R…","brand": "Logitech","sku": "6000201760487","gtin": "097855141712","model": "920-008971","price": 34.98,"priceFormatted": "$34.98","currency": "CAD","scrapedAt": "2026-10-25T20:48:48.661Z"}
Run summary
Run summary is stored separately from the dataset in the run's key-value store under OUTPUT_SUMMARY.
| Field | Meaning |
|---|---|
status | Run outcome: SUCCEEDED or FAILED. |
dataStatus | Dataset completeness: COMPLETE, PARTIAL, NO_RESULTS, or FAILED. |
recordCount | Product rows saved to the dataset. |
itemCount | Alias of recordCount. |
productCount | Alias of recordCount. |
diagnosticCount | Source or parse issues recorded outside the dataset. |
blockedCount | Blocked source responses. |
duplicateCount | Duplicate product records removed. |
requestedUrlCount | Source URLs requested for the run. |
processedUrlCount | Source URLs processed successfully. |
pageCount | Search or browse pages processed. |
filteredOutCount | Records removed by URL or content filtering. |
detailRequestedCount | Records eligible for detail enrichment. |
detailSuccessCount | Detail pages successfully merged. |
detailFailureCount | Detail requests that failed. |
failureCount | Source-request and detail-enrichment failures. |
proxyEnabled | Whether ordinary Apify Proxy was enabled. |
completedAt | UTC summary creation time. |
runStatus | Canonical run status; matches status. |
| Status | Data status | Meaning |
|---|---|---|
SUCCEEDED | COMPLETE | Eligible products were saved without an extraction problem. |
SUCCEEDED | PARTIAL | Products were saved, but a later request or detail failure prevented a complete run. Saved rows remain available. |
SUCCEEDED | NO_RESULTS | The source completed cleanly and returned no matching products. |
FAILED | FAILED | A fatal error occurred before any usable product was saved. |
Example OUTPUT_SUMMARY from the 2026-10-25 run:
{"status": "SUCCEEDED","dataStatus": "COMPLETE","recordCount": 3,"itemCount": 3,"productCount": 3,"diagnosticCount": 0,"blockedCount": 0,"duplicateCount": 0,"requestedUrlCount": 1,"processedUrlCount": 1,"pageCount": 1,"filteredOutCount": 0,"detailRequestedCount": 1,"detailSuccessCount": 1,"detailFailureCount": 0,"failureCount": 0,"proxyEnabled": false,"completedAt": "2026-10-25T20:48:49.875Z","runStatus": "SUCCEEDED"}
Coverage and limitations
Walmart Canada is the default generated-search market because its public pages currently expose the structured product payload the Actor reads; explicit Walmart.com URLs are also accepted, but a challenged US page is reported in logs and OUTPUT_SUMMARY rather than written as a row. The saved run produced three records from one search page, one of which is a color-variant row with limited fields and no price, so missing prices on variant rows are expected rather than errors. includeReviews is off by default, and review fields appear only when a detail page returns them. Ordinary Apify Proxy can be enabled in proxyConfiguration, but it is not an access-control bypass. Prices, availability, ratings, and fulfillment data are point-in-time values and can differ by store and region.
Usage and support
Apify bills the Actor according to the account and pricing configuration shown for the run. Start with one URL or search term, maxItems near 10, and maxDetailItems at 1; inspect the dataset and OUTPUT_SUMMARY, then scale. See the Actor's Pricing tab for current account rates. Use the Actor Issues page to report a problem. Include the run ID, the input used, and the run summary; do not include tokens, cookies, or private data. This Actor is not affiliated with Walmart. Use it only for public data and in accordance with Walmart's terms, robots guidance, and applicable law.


