Ultimate Walmart Scraper avatar

Ultimate Walmart Scraper

Under maintenance

Pricing

from $2.99 / 1,000 products

Go to Apify Store
Ultimate Walmart Scraper

Ultimate Walmart Scraper

Under maintenance

This 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

w3crawler

Maintained by Community

Actor 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

  1. Open the Actor Store page and select Try for free or open the Input tab.
  2. Set market and add startUrls, or enter a search term through searchTerms or query.
  3. Keep maxItems, maxDetailItems, and maxPages small for a first run. Detail enrichment and reviews are separate controls.
  4. 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.

FieldTypeRequired?DefaultMeaning
marketstring enumOptionalcaMarket used only when a search term generates a URL: ca or us. US URLs remain supported.
startUrlsobject arrayOptional[]Absolute public Walmart.com or Walmart.ca product, search, category, or browse URLs. Explicit URLs take precedence over generated search terms.
urlsobject arrayOptional[]Compatibility alias for startUrls.
searchTermsstring arrayOptional[]Non-empty terms converted to public Walmart search URLs when no explicit URL is supplied, up to 25 terms of 200 characters each.
search_termsstring arrayOptional[]Compatibility alias for searchTerms.
queriesstring arrayOptional[]Compatibility alias for searchTerms.
querystringOptionalNot suppliedOne search term alias, up to 200 characters. Ignored when a valid explicit URL is supplied.
urlstringOptionalNot suppliedOne URL alias for startUrls.
maxItemsintegerOptional50Global maximum of unique product records across all URLs and pages, 1–500.
maxPagesintegerOptional1Maximum observed search or browse pages requested per start URL, 1–10. Product URLs are fetched once.
deduplicatebooleanOptionaltrueDeduplicate by Walmart item ID, then canonical URL, across pages and URLs.
includeDetailsbooleanOptionaltrueFetch up to maxDetailItems product pages and merge descriptions, specifications, media, and optional reviews.
maxDetailItemsintegerOptional5Maximum records eligible for detail enrichment, 0–50. 0 disables detail requests even when includeDetails is true.
includeReviewsbooleanOptionalfalseInclude up to maxReviews public reviews from successfully enriched product pages.
maxReviewsintegerOptional5Maximum review objects per detail-enriched record, 0–20.
requestDelayMsintegerOptional700Minimum pacing delay between public requests, 0–10,000 ms. Requests are sequential.
maxRequestRetriesintegerOptional1Bounded retries for transient HTTP statuses; access challenges are never bypassed. 0–3.
timeoutMsintegerOptional30000Maximum time for each public HTTP request, 5,000–120,000 ms.
userAgentstringOptionalNot suppliedOptional transparent client user-agent, up to 300 characters.
proxyConfigurationobjectOptional{"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.

FieldTypeAvailabilityMeaning
recordTypestringAlwaysRecord discriminator; always walmart-product.
statusstringAlwaysRecord status, such as success.
dataAvailablebooleanAlwaysWhether the record contains usable public product data.
accessStatusstringAlwaysPublic access state, such as public_data.
sourcestringAlwaysWalmart source hostname, such as walmart.ca.
sourceTransportstringAlwaysTransport used for the source request.
extractionMethodstringAlwaysPrimary extraction method, such as embedded_json.
fallbackModestringWhen publishedFallback used when structured data was unavailable.
productIdstringAlwaysStable Walmart item or product identifier.
namestringAlwaysPublic product name.
urlstringAlwaysCanonical public Walmart product URL.
listingUrlstringAlwaysPublic search or browse page that produced the record.
searchUrlstringAlwaysOriginal search or browse URL for provenance.
requestedUrlstringWhen publishedURL requested for the detail response.
finalUrlstringWhen publishedFinal URL after redirects when known.
imageUrlstringAlwaysPrimary public product image URL.
imageUrlsstring arrayAlwaysBounded public product image URLs.
descriptionstringWhen publishedPublic product description or short description.
brandstringWhen publishedPublic brand name.
manufacturerstringWhen publishedPublic manufacturer name when exposed.
skustringAlwaysPublic SKU or Walmart item number.
gtinstringWhen publishedPublic GTIN or UPC when exposed.
modelstringWhen publishedPublic model identifier.
pricenumberWhen publishedNormalized current product price.
priceFormattedstringWhen publishedSource-formatted current price label.
wasPricenumberWhen publishedNormalized previous or list price when exposed.
wasPriceFormattedstringWhen publishedSource-formatted previous price label.
unitPricenumberWhen publishedNormalized unit price when exposed.
currencystringAlwaysPrice currency code.
availabilitystringWhen publishedPublic availability or stock status.
ratingnumberWhen publishedPublic average product rating.
reviewCountnumberWhen publishedPublic product review count.
sellerstringWhen publishedPublic seller display name.
categorystringWhen publishedMost specific public category name.
breadcrumbsstring arrayWhen publishedPublic category breadcrumb names.
featuresstring arrayWhen publishedBounded public feature or highlight strings.
specificationsobjectWhen publishedBounded public product specifications.
fulfillmentobject arrayWhen publishedBounded delivery, pickup, or fulfillment data.
badgesstring arrayWhen publishedPublic merchandising or fulfillment badges.
sponsoredbooleanWhen publishedWhether Walmart marked the item as sponsored.
variantCountnumberWhen publishedPublic count of product variants when exposed.
detailEnrichedbooleanAlwaysWhether a public product page was successfully merged.
detailStatusstringAlwaysDetail enrichment status.
detailErrorCodestringWhen publishedStable detail failure code when enrichment fails.
detailErrorstringWhen publishedBounded detail failure explanation.
detailSourceTransportstringWhen publishedTransport used for the detail request.
detailExtractionMethodstringWhen publishedExtraction method used for detail data.
detailScrapedAtstringWhen publishedTimestamp of the detail request.
mediaobject arrayWhen publishedBounded public product media metadata.
reviewsobject arrayWhen publishedBounded public reviews, only when requested and available.
reviewSummaryobjectWhen publishedPublic aggregate review summary.
provenanceobjectAlwaysSource and pagination provenance.
pageNumintegerAlwaysPage number used for the source request.
positionintegerAlwaysSource-order position within the emitted result set.
scrapedAtstringAlwaysRecord 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.

FieldMeaning
statusRun outcome: SUCCEEDED or FAILED.
dataStatusDataset completeness: COMPLETE, PARTIAL, NO_RESULTS, or FAILED.
recordCountProduct rows saved to the dataset.
itemCountAlias of recordCount.
productCountAlias of recordCount.
diagnosticCountSource or parse issues recorded outside the dataset.
blockedCountBlocked source responses.
duplicateCountDuplicate product records removed.
requestedUrlCountSource URLs requested for the run.
processedUrlCountSource URLs processed successfully.
pageCountSearch or browse pages processed.
filteredOutCountRecords removed by URL or content filtering.
detailRequestedCountRecords eligible for detail enrichment.
detailSuccessCountDetail pages successfully merged.
detailFailureCountDetail requests that failed.
failureCountSource-request and detail-enrichment failures.
proxyEnabledWhether ordinary Apify Proxy was enabled.
completedAtUTC summary creation time.
runStatusCanonical run status; matches status.
StatusData statusMeaning
SUCCEEDEDCOMPLETEEligible products were saved without an extraction problem.
SUCCEEDEDPARTIALProducts were saved, but a later request or detail failure prevented a complete run. Saved rows remain available.
SUCCEEDEDNO_RESULTSThe source completed cleanly and returned no matching products.
FAILEDFAILEDA 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.