Walmart Product Scraper | US CA MX Prices Reviews avatar

Walmart Product Scraper | US CA MX Prices Reviews

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Walmart Product Scraper | US CA MX Prices Reviews

Walmart Product Scraper | US CA MX Prices Reviews

Scrape Walmart.com, Walmart.ca & Walmart.com.mx products — search, categories, catalogs & PDP. Extract prices, ratings, sellers, stock, variants & reviews. Export Excel/CSV/JSON.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

26

Total users

13

Monthly active users

6 days ago

Last modified

Categories

Share

Walmart Product Scraper — Prices, Search, Categories & Reviews (US / CA / MX)

Scrape Walmart product data from Walmart.com, Walmart.ca, and Walmart.com.mx — then download structured results as Excel, CSV, or JSON.

Use this Actor as a practical Walmart product data API alternative for price monitoring, catalog research, competitor tracking, and inventory checks. Enter a keyword, category id, or product URL / usItemId, pick a market, and get clean Dataset rows with prices, ratings, sellers, availability, and product links.

  • Scrape Walmart search results, category browse pages, department trees, category hubs, facet catalogs, product detail pages, and US seller lead storefronts (email / phone / address / status)
  • Cover United States (walmart.com), Canada (walmart.ca), and Mexico (walmart.com.mx)
  • Capture current price, ratings, review counts, seller, stock status, sponsored flags, grocery / SNAP-related fields, and optional PDP variants
  • Set a postal code for local prices and stock: CA uses the nearest Walmart.ca store; US browses from the ZIP's city so Walmart prices for its store there (MX: not applied)
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
  • Pay per event — Actor start + each Dataset result; platform usage is included (you do not pay separate Apify compute on top)

What does the Walmart Product Scraper do?

Walmart Product Scraper lets you extract structured product and category data from Walmart storefronts without running your own browser farm or fighting Akamai / PerimeterX yourself. Give it a search keyword, browse category, or product id / URL, then start a run.

Under the hood, the Actor:

  1. Validates your input (market, mode, keyword / category / product ids, filters)
  2. Calls a managed Cloud Run worker that fetches Walmart pages with residential egress and unlock failover
  3. Parses guest-visible Next.js payload (#__NEXT_DATA__) into normalized product or category records
  4. Pushes Dataset rows ready for Excel / CSV / JSON export
  5. Writes RUN_SUMMARY (and ERROR_SUMMARY on failure) to the key-value store

You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.


What Walmart data can I extract?

DataSearchBrowse / CatalogProduct detailDepartments / Hub
Product name / title✅✅✅—
usItemId / offer id✅✅✅—
Current price / currency✅✅✅—
Rating / review count✅✅✅—
Availability / seller✅✅✅—
Sponsored flag✅✅——
Grocery / SNAP / by-weight flags✅✅✅—
Variants / secondary offers——✅*—
Reviews (first page)——✅*—
Seller contact / lead fields (US seller storefront)——✅*—
Category id / slug / browse URL—✅—✅
Direct Walmart product URL✅✅✅—

*Enable enrichDetails, expandVariants, and/or maxReviews where needed. For full review pagination use mode=reviews — it walks /reviews/product/{id}?page=N and can enumerate every page of a product's reviews (US only).


Why scrape Walmart?

Walmart is one of the largest retail catalogs in North America. Teams scrape Walmart to:

  • Monitor keyword and category prices across markets, Canadian postal codes or US metro areas
  • Build product catalogs from browse + facet crawl instead of a single SERP page
  • Track ratings, review volume, and seller mix for competitive research
  • Pull PDP details, variants, and grocery flags into pricing or assortment tools
  • Feed AI agents, BI dashboards, or enrichment pipelines with structured Walmart rows

Compared with single-mode Walmart Actors that only do search or only PDP / reviews, this Actor covers search + browse + catalog + departments + product across US / CA / MX.


More Actors like this

Need another marketplace or a different vertical? Use a dedicated Actor below for structured fields. Stay on Walmart Product Scraper for Walmart US / CA / MX search, browse, catalog, departments, and PDP.

Similar e-commerce scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

Real Estate

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Walmart products (no code required)

  1. Create a free Apify account
  2. Open Walmart Product Scraper
  3. Choose a mode: search, browse, catalog, departments, categoryHub, product, sellers (US seller leads), or reviews (US product reviews)
  4. Choose a market: US, CA, or MX (sellers and reviews are US-only — CA/MX publish no seller storefront or SSR reviews page)
  5. Enter a keyword (search), categoryId (browse / catalog), usItemIds / productUrls (product or reviews), or catalogSellerIds / sellerUrls / slpShard (sellers)
  6. (Optional) Set postalCode (e.g. M5V 3L9 on CA, 10001 on US), price filters, facetCrawl, or enrichDetails
  7. Click Start and download the Dataset as JSON, CSV, Excel, or JSONL

Start with maxResults: 5–10 to verify the query, then scale up.

maxResults defaults to 70 rows for each keyword, product URL / item ID, or seller ID / URL. Browse, catalog, departments, category hub, and seller-shard modes count as one scalar input. Values above 70 are collected in parts of 70. For a product input, the parent product, secondary offers, and opt-in variant or review rows all share the same budget. The whole run stops at your maximum total charge; the free Apify plan remains capped at 200 rows per run and 10 runs.


How much does it cost to scrape Walmart?

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Result (apify-default-dataset-item)$3.00 / 1,000 results ($0.003 each)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above.

Example cost estimates

Results collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

Free Apify trial credit can cover a small test run — try maxResults: 5 first.

Free-tier caps (Actor developer limits)

CapValue
Free Apify-plan runs of this Actor10 total
Free results / run200
Paying Apify usersUnlimited runs (schema max still applies)

These limits are enforced in Actor code (set by the Actor developer, not Apify).


Input

Open the Input tab for the full form. Common fields:

FieldDescription
marketUS / CA / MX
modesearch / browse / departments / product / catalog / categoryHub / sellers / reviews
keyword / keywordsSearch term. Each keyword is an input with its own maxResults row budget; when keywords has entries, keyword is ignored
categoryId / categorySlugBrowse / catalog category (e.g. 3944 + electronics)
facetFacet expression such as brand:Apple
sorte.g. best_match, price_low, best_seller
postalCode / storeIdCA: nearest-store price / fulfillment. US: priced for Walmart's store in the ZIP's city. MX: not applied (see Location)
minPrice / maxPriceOptional listing price filter
excludeSponsoredDrop sponsored cards from listing output
facetCrawl / facetCrawlMaxFacetsSlice browse facets for deeper catalog coverage
productUrls / usItemIdsProduct detail targets. Each URL or ID is an input; its product, offers, and opt-in child rows share that input's budget
enrichDetails / enrichLimitEnrich listing rows with PDP fields (default off; limit 5, max 50). Turn on for US seller phone, email and street address
catalogSellerIds / sellerUrlssellers mode targets — each numeric seller id or storefront URL is an input
slpShard / slpOffsetsellers mode — enumerate ids from Walmart's seller sitemap shard (sitemap_slp_01_{1-4}, ~168k sellers), slpOffset slices inside the shard
expandVariantsOff by default. Emits one separately billed row per PDP variant (size, color, pack)
maxReviewsDefault 0 (off). Cap billed review rows: first-page preview on product/enrich, or full ?page= walk on mode=reviews (up to 500)
reviewSortreviews mode only — Walmart review sort (relevancy default; newest, helpful, recent, rating-desc, most-critical all work)
maxResultsDataset-row cap for each input (default 70; values above 70 are collected in parts; free plan caps the whole run at 200)

Output

Each product row typically includes:

FieldMeaning
usItemIdWalmart item id
nameProduct title
price / currencyParsed list / current price
averageRating / numberOfReviewsRating signals
availabilityStatuse.g. IN_STOCK
sellerNameSeller display name
sponsoredSponsored listing flag when present
snapEligible / finalCostByWeightGrocery-related flags when present
productUrlCanonical Walmart URL
pricedForPostalCodeThe postal code Walmart's own pages priced the row for (when every page of the run agreed)
postalCode / marketpostalCode appears only when Walmart priced for exactly the code you gave (CA). When Walmart priced more than 40 km away, RUN_SUMMARY warns (postalCodeNotApplied) with the distance
imageUrlPrimary image when available

Seller & lead fields

Every Dataset row carries the standard lead/clue keys alongside the product data: phones, emails, address, geo, person, org, web, leadSource, leadReveal, leadAbsences (plus the PDP pointer sellerStoreFrontURL). They are always present as keys — an empty value is always paired with a machine-readable reason in leadAbsences.

FieldTypeMeaning
phones[{value, type, e164?}]Seller phone(s) from US seller storefront hydration (initialData.seller + DOM tel: href), e.g. 8447252333 (+18447252333). [] on CA/MX (see limitations)
emails[{value, type}]Seller email in plain text from the same hydration, e.g. walmart@eanxa.com (type: "seller"). [] on CA/MX
address{street, unit, locality, region, postalCode, country, full}Seller address. unit is the street/suite number (site field address2), e.g. "Room 2212, Huatong Building, No. 8 Ganli 2nd Road"; street is address1, full is the assembled one-line address
geo{lat, lng}Always {lat: null, lng: null} — Walmart product/seller pages carry no coordinates
person{name, role?} or nullAlways null — the site has no individual contact names, only selling organizations
org{name, id?}Seller legal entity: name = sellerName, id = sellerId GUID (consistent across search, PDP, and seller pages)
web{website, socials[]}website = the US seller storefront URL (/global/seller/{id}); socials is always [] — no per-seller social links exist on the site
leadSourceenumHow this row's lead data was obtained: search (listing card), detail (PDP), entity (seller storefront hydration)
leadRevealenumvisible for US seller hydration (data is already-visible); absent on rows without lead data
leadAbsencesobjectPer-subfield absence reasons, each starting with Not on this site, Gated, or Not verified, followed by the reason in brackets
sellerStoreFrontURLstring | nullPDP lead exit pointer, e.g. https://www.walmart.com/global/seller/101077439. null on CA/MX. Location note: Walmart has shifted this field from primaryOffer.sellerStoreFrontURL to the product root; this Actor reads it from both positions for compatibility

Reveal cost

There are no click-to-reveal controls anywhere on Walmart (no "show phone/email" buttons, revealControls=[]). All seller contact data is already-visible once the US seller storefront page hydrates. The cost is therefore just the enrich chain per seller:

  1. PDP → read sellerStoreFrontURL
  2. /global/seller/{id} → 302 → /seller/{numericId} → hydrate initialData.seller (or initialData.data.seller)

That is 1–2 extra requests per seller (the redirect included). No login, no clicks, no XHR-after-click.

sellers mode skips the PDP hop entirely: pass catalogSellerIds / sellerUrls directly, or enumerate the whole marketplace with slpShard + slpOffset (Walmart's own seller sitemap, ~168k entries). Seller pages are parsed status-agnostically — ACTIVE, SUSPENDED, and TERMINATED storefronts all still expose the lead block.

Honest limitations

  • US only for seller contacts. Walmart CA (/en/seller/{GUID} → 404) and Walmart MX (/seller/{GUID} → blank page) have no public seller pages, so phones / emails / address stay [] on those markets and leadAbsences records Gated (...); buyers contact sellers through platform messaging only.
  • person: Not on this site — Walmart shows only organizational sellers (sellerName), never an individual contact person.
  • geo: Not on this site — no coordinates are published for products or sellers.
  • web.socials: Not on this site — the seller object has no social/website fields; the storefront URL is the only web exit.
  • Seller-set exemptions. When a seller hides contact info (isContactVisibilityExempted / isAddressVisibilityExempted), the affected subfields are recorded as Gated (...) in leadAbsences rather than left silently empty.
  • Platform-level contact is not per-seller. Walmart's corporate contact channels (e.g. 1-800-WALMART, ir@walmart.com) are not emitted into dataset rows.
  • Listing (search/browse/catalog) rows carry only org (seller name + id) — full seller contact data appears on product-detail rows via the seller hydration described above.

Coverage matrix

DimensionCoverage
Markets✅ US www.walmart.com · ✅ CA www.walmart.ca · ✅ MX www.walmart.com.mx
Categories✅ Department tree · ✅ Category hubs · ✅ Browse categoryId · ✅ Catalog / facet crawl
Modes✅ search · ✅ browse · ✅ departments · ✅ product · ✅ catalog · ✅ categoryHub · ✅ sellers (US) · ✅ reviews (US)
Location✅ CA postalCode → nearest store, confirmed per page · ✅ US ZIP → Walmart's store in the ZIP's city (pricedForPostalCode, distance in locationResolved; Oct 2026 tests: 5–25 km, downtown Seattle falls back to Walmart's default store) · ⚠️ MX: not applied
Listing filters✅ facet · ✅ sort · ✅ min/max price · ✅ excludeSponsored
Product enrichment✅ details (enrichLimit ≤ 50) · ✅ variants · ✅ reviews (first page)

Use cases

1. Keyword price monitoring

In plain English: Track Walmart search prices for a product query (on walmart.ca, for a specific postal code).

You give:

FieldWhat to enter
modesearch
keyworde.g. wireless earbuds
postalCodee.g. 10001 (US) or M5V 3L9 (CA)
maxResults40

You get back: Product titles, prices, ratings, sellers, stock flags, and Walmart URLs — exportable as Excel / CSV / JSON.

2. Category / catalog harvest

In plain English: Crawl an Electronics (or Grocery) browse tree with facet slices for broader unique usItemId coverage.

You give: mode=catalog, categoryId, optional facetCrawl=true.

3. Product detail enrichment

In plain English: Pull PDP fields, optional variants, and first-page reviews for known item ids or URLs.

You give: mode=product, usItemIds or productUrls, optional expandVariants / maxReviews.

4. Cross-border assortment check

In plain English: Run the same keyword on US, CA, and MX markets to compare assortment and URLs.

5. Department discovery

In plain English: Pull the live department / category hub tree to seed downstream browse jobs.


Tips for better Walmart scrapes

  • Set a postalCode when price or stock matters — grocery prices differ by store. CA is exact; on US check pricedForPostalCode (Walmart prices a guest visit for the area it sees the visitor in); MX is not localized
  • Prefer catalog + facetCrawl for deep category coverage; a single browse list is capped by Walmart pagination
  • Use excludeSponsored when you want organic listing rows only
  • Keep enrichLimit modest unless you need PDP fields on every row
  • Start small (maxResults: 5–10) before large catalog runs

FAQ

Is this a Walmart API?
No. It collects guest-visible storefront data and returns structured Dataset rows. It is useful when you need a Walmart product-data workflow without maintaining unlock infrastructure.

Do you support Walmart.ca and Walmart.com.mx?
Yes — set market to CA or MX. Antibot pressure varies by market; diagnostics report provider / failover when used.

Can I scrape customer reviews?
Yes — two ways. mode=reviews (US only) takes usItemIds / productUrls and walks /reviews/product/{id}?page=N, so maxReviews caps the billed review rows collected across as many pages as needed (aggregate rating, rating distribution, aspect sentiments, top positive/negative snippets, and each review's id / authorId / title / text / rating / nickname / submission time / verified-purchase flag). reviewSort chooses the order (relevancy, newest, helpful, recent, rating-desc, most-critical). Product mode and enrichDetails still return the PDP's embedded first-page reviews when you only need a preview.

Do I pay Apify platform usage separately?
No. With this Actor’s pay-per-event setup, platform usage costs are included in the event prices (Actor start + results).

Is login / order history supported?
No. This Actor does not access account, cart, or order surfaces.


Architecture

Actor (this) --HTTPS + WORKER_AUTH--> walmart-com Cloud Run --> Walmart storefronts

Env: WORKER_BASE_URL, WORKER_AUTH / WORKER_API_KEY (secret), WORKER_PROVIDES_PROXY=1.

Standby

usesStandbyMode + .actor/openapi.json for Live View convenience searches (capped).

Only scrape data you have a lawful right to access. Respect Walmart’s terms and applicable laws. Do not use this Actor for account takeover, credential stuffing, or personal-data harvesting beyond publicly shown product content.


All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss