Walmart Scraper: Products, Prices, Sellers avatar

Walmart Scraper: Products, Prices, Sellers

Pricing

from $0.47 / 1,000 products

Go to Apify Store
Walmart Scraper: Products, Prices, Sellers

Walmart Scraper: Products, Prices, Sellers

Scrape Walmart US, Canada and Mexico by category, brand, keyword landing page, shelf, link or product id, no login. Get price, was price, Rollback, rating, availability, seller, delivery dates and the ZIP Walmart priced at. Add details, reviews, seller contacts. JSON, CSV, Excel; pay per product.

Pricing

from $0.47 / 1,000 products

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Walmart Scraper: Products, Prices, Sellers

Walmart scraper for product data from walmart.com, walmart.ca and walmart.com.mx: read Walmart categories, brand pages, Walmart's own keyword landing pages, department and shelf pages, product links and product ids, and walmart.com seller links and ids, and get every product as a row with its price, was price, unit price, rating and review count, availability, seller, pickup and delivery dates, Rollback and other badges, category trail and the ZIP code and store Walmart priced it at. Optional Product details add the description, specifications, UPC, model, variants, return policy, warranty, protection plans, every other seller's offer and one offer per condition; optional Review rows add walmart.com reviews; seller links and ids (or the optional Seller profile on products) give a Marketplace seller's legal name, e-mail, phone and address. No login, no cookies, no proxy of your own needed.

Walmart prices every page for a location. This Actor does not pick one for you: each row says in pricedAt the ZIP code, city, state and store Walmart used, so you always know which shelf price you are looking at.

Who uses it

  • Brands and Walmart Marketplace sellers watching prices, Rollbacks, availability, the selling seller and ratings of their own products and of others in their category.
  • Price comparison and deal sites that list Walmart offers in the US, Canada and Mexico.
  • Retail analysts (assortment, price bands, was prices, badges, seller mix) and teams building lists of Walmart Marketplace sellers with their published contacts.

Quick start

  1. Paste one or more Walmart links in Walmart links (a category such as https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913, a brand page, a /c/kp/ keyword page, a department or shelf page, product pages or walmart.com seller pages), or give Category ids, Product ids or Seller ids.
  2. For ids, pick the Market: United States (default), Canada or Mexico. A pasted link carries its own site.
  3. Set Max products in all and Max products per input (100 each when left out).
  4. Optionally add a Sort, a price range, Brands, Other filters, a Store number or a Min customer rating (walmart.com listing pages).
  5. Optionally switch on Product details, Seller profile or set Reviews per product, then run it and download the dataset as JSON, CSV or Excel, or read it through the API.

What you get

One row per Walmart product (type: product), delivered and charged once per run. Seller links and ids give one row per seller (type: seller, see Seller rows below).

FieldWhat it is
productId, market, urlWalmart's item id (the number at the end of the product link), the site (us, ca, mx) and the product link
name, brand, image, shortDescriptionas Walmart shows them
price, currency, priceText, wasPrice, wasPriceTextthe current price and the earlier price Walmart shows beside a reduced one, in USD, CAD or MXN
unitPrice, savings, savingsText, priceRange, shippingPrice, subscriptionPrice, priceCondition, otherConditionPricethe price per unit, the stated saving, the price range of the variants, the shipping price, the subscription price, Walmart's price condition text and the lowest price in another condition
rating, reviewCountaverage customer rating out of 5 and the number of reviews Walmart counts
availabilityWalmart's availability code and text (IN_STOCK, "In stock")
sellerName, sellerId, sellerInternalId, isWalmartSellerthe seller of the offer Walmart shows first and whether it is Walmart itself
fulfillmentshipping, pickup and delivery options with their dates
badges, labels, flagsWalmart's badges (Rollback, Best seller, Clearance), the other labels on the product card, and yes or no flags read from them (rollback, clearance, bestSeller, walmartPlusSavings, snapEligible, lowStock and more)
isSponsored, conditiona sponsored placement (only with Include sponsored products) and the condition Walmart shows ("Open Box", "Restored: Like New")
variantCount, variants, variantOf, variantAttributes, additionalOfferCountthe product's variants with their own ids, the product a variant row belongs to, its size or colour, and how many more offers Walmart counts
categoryPath, categoryPathIds, categoryPathText, aislesWalmart's category trail (names and ids) and the store aisle where Walmart shows one
pricedAtthe ZIP code, city, state and store Walmart priced the row at
position, page, sortedBy, source, scrapedAtwhere the product stood on Walmart's page, the order, which input found the row (and the shelf, on a shelf page) and when
details, detailsStatusthe Product details add-on (below; details.otherOffers holds every other seller's offer as Walmart's page lists it), else null; with details asked, detailsStatus is read or says why not (charge_limit, not_read_unpaid_work, stopped, failed, not_found, another_product)
variantsStatuswith Expand variants on: read when the product page naming the variants was read, not_offered_with_filters on a walk whose filters a variant cannot prove, or why the page was not read (not_read_unpaid_work, stopped, failed, not_found, another_product)
reviewsStatus, reviewsDelivered, reviewsOnWalmart, reviewsNotewith reviews asked: what was read (read, partly_read, none when Walmart lists no review, failed, not_found, not_read_unpaid_work, stopped, charge_limit, or not_offered_in_market on walmart.ca and walmart.com.mx), how many review rows came with the product, Walmart's count of written reviews (on a read without star or verified filters), and, for every status other than read, none and not_offered_in_market, a note naming the first cause (your charge limit, a page that did not apply the order or filters, repeats, an early empty page, a failed page, the run stopping)
sellerProfile, sellerProfileStatus, sellerProfileKey, sellerProfileChargedthe Seller profile add-on (below) and the seller id it belongs to, else null with the reason (sold_by_walmart, no_seller_id, not_offered_in_market, charge_limit, not_read_unpaid_work, stopped, failed, not_found, another_seller); sellerProfileCharged is true on the one row of the seller that carries the run's single Seller profile charge (a product row, or the seller's own row from a seller link or id) and false on the seller's other rows (if the platform declines that charge, the seller is not charged again in the run)

An add-on that is not delivered never takes its product with it: the product row is delivered and its status field names why (charge_limit: your charge limit did not pay for it; not_read_unpaid_work: the run's allowance for unbilled work was spent; stopped: the run was stopping; failed, not_found, another_product, another_seller: Walmart did not serve it), and the add-on is not charged.

How full the fields are, measured on 2026-10-31 on runs of this Actor on Apify (build 0.1.1, 28 runs between 21:08 and 21:27 UTC): 1,063 product rows (746 distinct products; 1,052 from walmart.com, mostly the TVs category, 10 from walmart.ca, 1 from walmart.com.mx), 11 of them with Product details (9 distinct products), 305 review rows of 7 products, 1 row with a Seller profile.

FieldApify runs
productId, market, url, currency, pricedAt (ZIP code, city, state, store number)100%
availability100%
name, image, sellerName, fulfillment (variant rows carry only what the page shows about the variant)99.5% to 99.6%
reviewCount99.4%
price (30 tiles of keyword, shelf and deep category pages were served without one)97.2%
categoryPath (walmart.ca tiles: 0 of 10)96.7%
labels96.3%
shortDescription95.9%
rating (only products someone rated carry one)74.2%
additionalOfferCount26.1%
wasPrice24.0%
badges (Rollback, Best seller and others)16.3%
condition ("Open Box", "Restored: Like New")14.2%
priceRange12.5%
shippingPrice2.3%
savings0.8%
unitPrice (where Walmart shows a price per unit)0.4%
brand: category tiles 0 of 1,027, shelf page tiles 10 of 10, rows read from product pages 11 of 112.0%
Product details: longDescription, specifications, images, returnPolicy, offerCount, reviewsSummary, embeddedReviews11 of 11
Product details: upc, model, manufacturerProductId (the manufacturer part number), highlights10 of 11
Product details: fulfillmentOptions, conditionOffers10 of 11
Product details: variantCriteria, promotions9 of 11
Product details: warranty8 of 11
Product details: addOnServices (protection plans and expert help with prices)8 of 11
Product details: videos8 of 11
Product details: the seller's rating (Marketplace sellers only)1 of 11
Reviews: rating, submittedAt, submittedDate, isVerifiedPurchase, helpfulVotes, unhelpfulVotes100%
Reviews: text, authorName99.3%
Reviews: title73.1%
Reviews: sellerName, fulfilledBy71.8%, 71.5%
Reviews: aspects61.3%
Reviews: brandResponse43.3%
Reviews: photos37.4%
Seller profile: displayName, legalName, email, phone, address, about, rating, reviewCount1 of 1
Seller profile: writtenReviewCount, hasSellerBadge, logo, profileUrl1 of 1

Product details (add-on)

With Product details on, each delivered product carries details: upc (and gtin on walmart.com.mx), model, manufacturerProductId (the manufacturer part number), shortDescription and longDescription as served, highlights, specifications, warranty, images, videos, variantCriteria (every size and colour with its availability), fulfillmentOptions (shipping, pickup and delivery with dates, prices and order limits), returnPolicy (returnable, free returns, return to store, window in days), addOnServices (protection plans and expert help with their prices), otherOffers (every other seller's offer of the product in the same condition, as Walmart serves it: sellerId, sellerName, sellerDisplayName, offerId, price, priceText, currency, offerType, condition, availability, fulfillmentType, sellerRating, sellerReviewCount, sellerStorefrontUrl, wfsEnabled; the offer Walmart shows first stays on the row itself; our saved page of product 19365359171 of 2026-11-01 holds two other sellers beside the first offer, Electronic Express at $219.99 and GSAWHOLESALE at $249.99), conditionOffers (one offer per condition with its price), offerCount, promotions, the seller (name, id, type, and for Marketplace sellers the rating and review count), reviewsSummary (average, rating count, written review count, star histogram, review topics), embeddedReviews (the reviews the product page shows), the category links, and the label blocks Walmart serves for food, health and other products (ingredients, nutritionFacts, warnings, directions, tire). Rows from product links and ids are read from the product page, so they carry details and are charged one Product details each (unless your charge limit cannot pay it: detailsStatus: charge_limit); a variant row carries details only with Product details on. A listing row can go without details when the run's add-on allowance is spent; detailsStatus then says so.

Reviews (add-on)

Set Reviews per product above 0 and each delivered walmart.com product brings up to that many reviews as their own rows (type: review): rating, title, text, submittedAt and submittedDate, authorName (the nickname), isVerifiedPurchase, helpfulVotes, unhelpfulVotes, photos, brandResponse, sellerName, fulfilledBy, badges, aspects, syndicationSource and the reviewed variant (reviewedProductId, reviewedProductName). Walmart's six review orders and its star and verified purchase filters are available; Walmart lists up to 10,000 reviews per order and star filter. Review rows are written as they are read, a page at a time, each before its product row, and billed when written; if a run is stopped between a product's reviews and its product row, the review rows stay delivered and billed, and a restarted run writes the product row without reading or billing them again. One Review is charged per review row.

Seller profile (add-on)

With Seller profile on, every delivered product of a walmart.com Marketplace seller carries sellerProfile from the seller's public page: displayName, legalName, email, phone, address, about, rating, reviewCount, writtenReviewCount, hasSellerBadge, logo and profileUrl. The page is read once per seller per run attempt (a seller row with Raw data on reads its own page, and a run the platform restarts reads it again, and a seller row reads it again when an earlier read of that seller failed), and one Seller profile is charged once per seller per run, on the first delivered product of that seller unless the run already charged it as a seller row (sellerProfileCharged: true there, false on the seller's other products, which carry the same profile; if the platform declines that one charge, the seller is not charged again in the run). Products sold by Walmart itself carry none (sellerProfileStatus: sold_by_walmart). In our run of 2026-10-31 with three product ids, the one Marketplace product carried its seller's profile and the run was charged one Seller profile; the two products sold by Walmart carried none.

Seller rows

Give walmart.com seller links (https://www.walmart.com/seller/101174524, or the /global/seller/ form product pages link to) in Walmart links, or their ids in Seller ids, and each seller becomes one row (type: seller) read from its public seller page:

FieldWhat it is
sellerId, market, profileUrlWalmart's catalogue seller id (the number at the end of the seller link), us, and the seller page
displayName, legalNamethe name buyers see and the registered business name, as Walmart serves them
email, phone, phoneCountryCodethe contacts Walmart publishes on the seller page (some sellers publish a relay e-mail address)
addressline1, line2, city, state, postalCode, country as published
about, sellerType, hasSellerBadge, statusthe seller's own text, Walmart's seller type, its seller badge and its account status (ACTIVE)
rating, reviewCount, writtenReviewCountthe seller's average rating, its rating count and its written review count
logo, bannerthe seller's images where it has them
isAddressVisibilityExempted, isContactVisibilityExempted, isAlcoholSellerWalmart's marks for a seller exempted from showing its address or contacts, and for an alcohol seller
sellerProfileCharged, source, scrapedAtwhether this row carries the seller's charge, the input that asked for it and when

Each seller is charged ONE Seller profile per run, whichever way it comes (its page is read once per seller per run attempt: a seller row with Raw data on reads its own page, and a run the platform restarts reads it again, and a seller row reads it again when an earlier read of that seller failed): a seller row is charged one Seller profile (the same event and price as the add-on), a seller already charged in the run through the Seller profile add-on of a product is delivered as a free seller row (sellerProfileCharged: false), and the products of a seller charged as a row carry its profile free. Seller ids Walmart does not know (its seller page answers not found) are counted on one free status row per reason, which lists their input positions, never the ids. Seller rows count in Max products in all; seller pages are read on walmart.com only. In our saved pages of 2026-11-01, five of five real seller ids carried their e-mail, phone and address, and two made up ids answered not found.

Free rows

Every listing input that is walked gets one coverage row; inputs that are not walked (settings their market or page kind cannot apply, a link refused, an input the same as an earlier one, also one found to be the same only after its filter list was read) are listed by position on one free status row per reason. A coverage row holds Walmart's stated count (totalOnWalmart), the distinct products met, the pages and price bands read, the products delivered, left out by filters, repeated and sponsored, why the walk stopped (stoppedBy), the walk's ranges (the main list and every price band read, each with its price bounds, its own stated count, the distinct products met and whether it is complete), products whose product page no longer matched the filters sent (changedSinceListed), and complete: true only when the main list, or the price bands together, cover the walk's whole price range with each one read to its own stated count, and the distinct products met reach Walmart's count for the page (or Max products per input ended the walk); a page Walmart lists empty while stating products there, a setting refused for the page, an add-on page that failed or a run restarted by the platform is never complete. Status rows name what could not be used or found: product ids and links Walmart does not know or no longer sells and seller ids and links Walmart does not know (one row per reason, listing their input positions in inputs with the count, never the ids), a filter Walmart does not list for the page, a keyword page Walmart sends to its site search, a link the Actor does not read. With Filter options on, each listing input adds one row with every filter and value Walmart shows for the page and its sub categories. The last row is the run summary. None of these is charged.

Depth

Walmart shows 10 pages of 40 products (about 400) for one listing in one order. When you ask for more, a walmart.com walk goes on in closed price bands read in Walmart's best match order: a band stating more than 400 products is split in two at the middle price of its first page, and bands are read until none is left (or your caps or the band limit), every product already met skipped, so one category can deliver up to Max products per input (up to 50,000), each once; those rows have no position and say best_match in sortedBy. A band within one dollar that still states more than 400 is read to Walmart's depth and the coverage row says so. Every listing page is read once, as Walmart serves it; a walk whose distinct products fall short of Walmart's stated count is partial (complete: false). The coverage row shows each range with its own count next to the distinct products met. Sponsored placements are skipped free and counted by default. In our run of 2026-10-31 asking 700 products of the TVs category (Walmart stated 1,371), the walk read 36 pages in 11 ranges, delivered 700 products, each once, and skipped 299 sponsored placements free.

How much does it cost to scrape Walmart?

Pay per event: you pay for the products, details, reviews and seller profiles delivered, plus a small start fee per run. Platform usage is included.

EventFreeBronzeSilverGold
Product (per 1,000)$0.66$0.60$0.55$0.47
Product details, add-on (per 1,000)$2.00$1.70$1.45$1.20
Review, add-on (per 1,000)$0.29$0.28$0.27$0.25
Seller profile, a seller row or the add-on (per 1,000)$2.80$2.50$2.20$2.00
Actor start (per run)$0.005$0.005$0.005$0.005

Platinum and Diamond plans pay the Gold price. The start fee has no discount. The Store pricing card shows these same prices per 1,000 events: "$0.47 / 1,000" on the Product row means one product costs less than a tenth of a cent.

Examples at the Bronze price: 1,000 category products cost $0.60 plus the $0.005 start fee, $0.605 in all; 100 category products with details cost $0.06 + $0.17 + $0.005 = $0.235; one product id with 500 reviews costs $0.0006 + $0.0017 + $0.14 + $0.005 = $0.1473; 50 products from 10 Marketplace sellers with seller profiles cost $0.03 + $0.025 + $0.005 = $0.06; 20 seller ids cost $0.05 + $0.005 = $0.055.

Not charged: a product left out by a filter or the minimum rating, a sponsored placement skipped, a product repeated in the run, an id Walmart does not know or no longer sells, a seller id Walmart does not know, a seller already charged in the run (its other rows carry the profile free), a product whose product page no longer matches the filters or store sent, a filter or order a page does not offer, details, reviews or seller profiles that could not be read, and every status, coverage, filter options and summary row. You can cap the spend of a run with Apify's maximum charge setting: the Actor stops cleanly at it.

Input

SettingWhat it does
startUrlsWalmart links: categories (/browse/..., with their own page, sort, filter, price and store settings), keyword pages (/c/kp/...), brand pages (/c/brand/...), department and shelf pages (/cp/..., /shop/..., the home page; page 1, every product tile) and product pages (/ip/...), on walmart.com, walmart.ca or walmart.com.mx, and walmart.com seller pages (/seller/<id>, one seller row each).
categoryIdsWalmart category ids, the last part of a category link (3944_1060825_447913 for TVs).
productIdsProduct ids, each read from its product page (18211860309; walmart.com.mx keeps its leading zeros; walmart.ca ids hold letters and digits).
sellerIdswalmart.com seller ids (101174524) or seller links, each read from its seller page as one seller row (see Seller rows); read on walmart.com only.
marketThe site category ids and product ids are read on: United States (default), Canada or Mexico.
languageEnglish (default) or French for walmart.ca category and product ids; a pasted walmart.ca link keeps its own.
sortWalmart's orders: best match, price low to high, price high to low, best selling, highest rating, new arrivals.
minPrice, maxPriceWalmart's price filter in whole dollars, checked again on every row as delivered (product ids and links too); a product without a price is left out free.
brands, filtersBrand names and any other filter of the page by Walmart's own labels (Retailer: Walmart, Special Offers: Rollback). A value Walmart does not list for the page is left out or a free status row, never a wider search. Brands are also checked on every row: a listing row by its brand when the tile carries one (most category tiles carry none) and else by the brand filter Walmart says it applied, a product id or link by the brand on its product page. Product ids and links cannot prove other filters: with filters or storeId set they are not read (one free status row).
storeIdA Walmart store number: only products available in that store.
minRatingOnly products with at least this average rating, checked on every row (product ids, links and variants too); a product without a rating is left out free.
includeSponsoredDelivers sponsored placements (marked isSponsored) on a plain category page without filters, brands or store, when they belong to that category and pass every check; brand, keyword, department and shelf pages always skip them; off by default.
maxItems, maxItemsPerInputCaps for the whole run (up to 100,000; seller rows count too) and per input (up to 50,000; a product id or link counts its variants in it); 100 each when left out.
startPage, maxPagesPerInputThe Walmart page a walk starts at (1 to 10) and the most pages one input reads.
includeDetails, expandVariantsProduct details for listing rows (the row is then the product page's own, newer than the listing); each variant the product page names as its own product row, checked like every row (not on a listing page with Other filters, a non-brand facet in the link, or a store, which a variant cannot prove: variantsStatus: not_offered_with_filters; price bounds and brands do not stop them). On such a page, a product whose page no longer agrees with its listing on the seller, the availability, the price range or a badge is left out free and counted (changedSinceListed).
maxReviewsPerProduct, reviewsSort, reviewsRatings, reviewsVerifiedOnlyThe Reviews add-on, its order, its stars and verified purchases only. Every review page must prove the order and filters sent: it shows the order sent; with a star filter alone its count is that star's own review count; with a star filter and verified purchases only its count is at most that star's review count and every row on it has that star (Walmart does not narrow its star counts to verified purchases); with verified purchases only every row on it carries the mark and its count is at most Walmart's written total (Walmart does not echo that filter). Else it is asked once more, then nothing of it is charged and the reviews are partly_read (failed when no review was delivered); every review row is still checked on its stars and verified mark. A product's reviews are read only when the distinct reviews delivered reach the count Walmart's pages state for every star asked, each read to its end (or Reviews per product was delivered); anything short of that is partly_read with a note naming why.
includeSellerProfileThe Seller profile add-on (a seller already charged in the run as a seller row rides free).
includeFilterOptionsOne free row per listing input with every filter Walmart shows for it (with counts) and its sub categories.
includeRawDataAdds Walmart's own product object to each row.
outputFieldsKeeps only the product row fields you name (plus type, productId, market, url, source and the add-on status fields); the details and sellerProfile a row is charged for are always kept.
includePersonalDataAdds the reviewer's Walmart user id (authorId) to review rows; off by default.
proxyConfiguration, maxConcurrency, requestTimeoutSecs, maxRequestRetriesRun settings; the defaults need no change. Left out, the proxy is Apify datacenter addresses, with a few residential addresses of the page's country when Walmart refuses datacenter ones (never for review pages). Choosing Apify residential proxies reads datacenter first: Walmart answers Apify datacenter exits; residential exits are used only when datacenter exits are refused, for at most 10 percent of reads, at least 2 reads a run (a note row and the summary say so). Your own proxy links (http://user:password@host:port; https:// proxy links are refused) are used as given for every page and cost only the run's data transfer (USD 0.20 per GB both ways).

Sorts, the price range, brands, other filters and the store number apply to walmart.com category, keyword and brand pages; on a walmart.ca, walmart.com.mx, department or shelf page that would need one, the input is not read and is listed by its position on one free status row per reason. A brand page (a /c/brand/ page, or a category link whose path carries one brand) keeps its own brand: Brands given with it must name exactly that brand, else the link is a free status row ("this link is a brand page of onn; brands cannot be changed on it; use the category link"), since Walmart would list both brands. An input without any of startUrls, categoryIds, productIds and sellerIds (for example {}) reads a sample: the first 20 products of Walmart's TVs category (or Max products in all, when you set it), charged as products, with a note row saying so. One of them given as null, an empty text or an empty list, with nothing else to read, is an invalid input: one free status row, only the start fee.

Example input:

{
"startUrls": [{ "url": "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913" }],
"brands": ["Samsung"],
"minPrice": 300,
"maxPrice": 900,
"sort": "best_seller",
"maxItems": 200,
"includeDetails": true
}

What this Actor does NOT do

  • It does not run Walmart's keyword search (/search): Walmart's robots.txt closes it to automated readers. A /search link is a free status row; Walmart's own keyword pages (/c/kp/...) are read.
  • It does not set a ZIP code, state or store for prices: Walmart prices each page for the location of the address that reads it. On 2026-11-01 we tried every setter we found again, two or three times each, for two ZIP codes (72712 and 10001), on product and category pages: the link settings stores, storeId, zipcode and postalCode, the location cookies assortmentStoreId, xptc, isoLoc, locGuestData and locDataV3 (alone and forged together), and Walmart's app product door, whose request carries no location; every page stayed priced at the reading address (Sacramento, CA 95829, store 3081 on Apify's default addresses), and Walmart's own location lookup answered with its waiting room. Each row states the location Walmart priced it at in pricedAt.
  • It does not price walmart.ca for a postal code: Walmart Canada turns a postal code into its nearest stores only for a Canadian residential address (on Apify's default addresses that lookup answers with its waiting room), prices every page at the location of the reading address, and ignores a store forged for another place (2026-11-01, Toronto M5V 3L9 and Vancouver V6B 1A1).
  • It does not name the seller of an offer in another condition (used, refurbished): those come in details.conditionOffers with their condition and price, and Walmart's page does not carry their seller. Every other seller's offer in the same condition is delivered in details.otherOffers. Walmart's page now and then counts other offers (additionalOfferCount) without listing them; otherOffers is then an empty list for that read (seen once in seven reads of one product in our tests).
  • It does not list a seller's whole catalogue: a seller page carries the seller's profile and no product, and Walmart loads the seller's products only through its site search call, which robots.txt closes. Give the seller's product links or a category instead.
  • It does not read sellers from a sitemap: Walmart publishes no seller sitemap (none of the sitemaps its robots.txt lists holds seller pages, and sitemap_seller.xml, sitemap_slp.xml and sitemap_slp_1.xml answer not found). Seller ids come from product rows (sellerId, details.otherOffers) or your own list.
  • It does not read questions and answers: Walmart's product pages do not carry them.
  • It does not give stock counts: Walmart's pages carry an availability code and text and, where shown, a low stock label, not a number of units.
  • It does not read reviews or seller profiles on walmart.ca and walmart.com.mx: they are read on walmart.com, and other rows say so in reviewsStatus and sellerProfileStatus.
  • It does not run your own code on the rows: Output fields picks the fields you keep instead.
  • It does not track or compare prices, stock or new products between runs, and sends no alerts; schedule runs and compare their datasets yourself (each row carries scrapedAt and pricedAt).
  • It does not log in, place orders or read anything behind a Walmart account.

FAQ

Is there a Walmart product API I can use?

This Actor gives you Walmart's public product pages as an API on Apify, with no Walmart account or key: start a run with the input above and read the dataset as JSON, CSV or Excel, or connect it to Make, n8n or Zapier.

How do I scrape Walmart prices without coding?

Paste a Walmart category link or product ids in the input form, set how many products you want, and click Start. The dataset holds one row per product with price, was price, unit price, rating, availability and seller.

Can I get Walmart prices for a ZIP code or store?

Not by choice: Walmart prices each page for the location it gives the address that reads it and offers this Actor no way to change it. Every row says in pricedAt which ZIP code, city, state and store Walmart priced it at (in our runs of 2026-10-31 on Apify's default addresses, all 1,052 walmart.com rows were priced at Sacramento, CA 95829, store 3081). Store number limits a walmart.com walk to products available in that store.

How do I get a Walmart seller's contact details?

Give the seller's link (https://www.walmart.com/seller/101174524) in Walmart links or its id in Seller ids. Each seller comes back as one row with the e-mail, phone and address Walmart publishes on its seller page, its legal and display name, rating and review counts; one Seller profile is charged per seller per run. Product rows name their seller in sellerId, and details.otherOffers names every other seller of a product, so a category walk with Product details on is a way to find seller ids.

Can it scrape a whole Walmart category?

Yes. Give the category link or id and raise both Max products per input and Max products in all (100 each when left out, so raising one alone still stops at 100): past Walmart's 10 pages a walmart.com walk goes on in price bands, and the coverage row shows the products met next to Walmart's count.

How do I scrape Walmart reviews?

Set Reviews per product and give product ids, links or a category. Each walmart.com product brings its reviews as rows, in the order you pick, filtered by stars or verified purchases if you want. One Review is charged per review delivered.

Why does this Actor run with limited permissions?

It runs with limited permissions (least privilege): it can write only to its own run's dataset and key-value store and cannot read or change anything else in your Apify account.

API

curl -X POST "https://api.apify.com/v2/acts/automation_craft~walmart-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"categoryIds": ["3944_1060825_447913"], "sort": "price_low", "maxItems": 50}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('automation_craft/walmart-scraper').call({ startUrls: [{ url: 'https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913' }], maxItems: 100, includeDetails: true });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((x) => x.type === 'product').length);
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("automation_craft/walmart-scraper").call(run_input={"productIds": ["18211860309"], "maxReviewsPerProduct": 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["type"], item.get("name") or item.get("title"))

Changelog

  • 0.1: first release.

More data tools by Automation Craft