Walmart Scraper at a glance
Walmart Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes item id, change type (incremental mode), title, brand and price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.20 per 1,000 results on the Apify Free plan and from $0.90 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $1.20 per 1,000 results (Free plan), from $0.90 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 31 options
Scrape Walmart.com by keyword, URL, or item ID. Extract prices, was-prices, sellers, marketplace offers, stock, ratings, specs, images, and reviews. Track NEW, UPDATED, REAPPEARED, and EXPIRED items with resume and MCP export.
What Walmart Scraper can do
- Reviews and offers ride the same request as the product page. Every walmart.com product page ships its reviews and its seller offers in the same document as the product itself, so this actor returns them from one detail read instead of a separate call per review or per offer.
- A listing page returns full product rows for free. A search or browse page carries its whole result grid as structured data, so a listing-level pull returns price, was-price, rating, review count, seller and stock for every card with no per-product request at all.
- Filters that are actually true. The storefront's own sort and filter parameters are sent with the request, so filtering narrows results before they count against your item cap. Sponsored tiles are injected into the grid regardless of the active filters, and this actor re-checks every row so "hide sponsored" and "sold by Walmart" mean what they say.
- Search keywords and pasted links in one run. Mix keyword searches with pasted search, browse, shop or category links; each is walked on its own, page by page, with the storefront's own pagination bound.
- Monitoring built in. Label every record NEW, UPDATED, REAPPEARED or EXPIRED across scheduled runs, resume an interrupted crawl, and export results through MCP connectors.
- Structured failures. A run the storefront refuses fails loudly with a clear message instead of returning an empty dataset that looks like a search with no matches.
Choose what to collect
These inputs let you configure Walmart Scraper - Products, Prices, Sellers & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Choose 'search' to run keyword searches and walk pasted search, browse or category links. Choose 'products' to look up specific products by their walmart.com link or item id. |
queriesarray | One or more keywords to search on walmart.com, for example 'laptop' or 'coffee maker'. Each keyword is searched separately and walked page by page. |
searchUrlsarray | Paste walmart.com listing links to walk, for example https://www.walmart.com/browse/electronics/3944 or a search link you copied from your browser. Filters you had already selected in that link are kept, and this run's own filters are added on top. Product links do not belong here; use Product mode for those. |
productInputsarray | Only used when mode = products. Mix freely: full product links such as https://www.walmart.com/ip/Apple-MacBook-Air/19699754154 or bare item ids such as 19699754154. |
startUrlsarray | Paste walmart.com links in one list. Product links are read as products; search, browse, shop, category and seller links are walked as listings. Works in either mode, in addition to anything entered above, except that the untouched prefilled keyword 'laptop' is not searched when Start URLs is filled and no Storefront links are given. Each entry can be a plain link or a {"url": ...} object. Each product link is read from its product page and carries the detail-enrichment unit. |
maxProductsPerStartUrlinteger | Stop each listing link in Start URLs after this many returned products. 0 means no per-link cap (the overall Max products still applies). |
enqueueProductVariantsboolean | When on, every size or colour variant that a product lists is read as its own record too (one extra product page each, counted in Max products; each variant record carries the detail-enrichment unit). Off by default. |
Show 24 more inputs
| Input | What it controls |
|---|---|
sortBystring | The storefront's own sort order for search results. |
brandsarray | Optional. Keep only products from these brands, exactly as the storefront spells them (for example 'Apple', 'HP', 'Lenovo'). Several brands are combined as 'any of these'. |
retailerTypestring | Optional. Narrow to who sells the item: Walmart itself, Pro Sellers, or marketplace sellers whose orders Walmart fulfills. |
conditionstring | Optional. Narrow to new, restored or pre-owned items. |
specialOfferstring | Optional. Narrow to items currently carrying a deal flag. |
minRatingstring | Optional. The storefront publishes two rating buckets and this filter uses them; each returned row is also checked against the number, so a row below the bucket never reaches the dataset. |
inStockOnlyboolean | Optional. Hide items the storefront currently cannot sell or deliver. |
excludeSponsoredboolean | Optional. Drop advertising tiles from the results. The storefront injects sponsored products into the grid regardless of the filters above, so turn this on when you want a clean, filter-true assortment view. |
minPriceinteger | Optional. Only keep products priced at or above this amount. |
maxPriceinteger | Optional. Only keep products priced at or below this amount. |
fetchDetailsboolean | Read each product's own page to add brand, model, UPC, full description, specifications, all images, every seller offer, the return policy and the rating breakdown. Charged once per record enriched. Leave off for a fast, cheap listing-level pull. |
includeReviewsboolean | Add the customer reviews the product page itself publishes, each with the reviewer's public display name, rating, title, text, date and verified-purchase marker. This reads the same product page as Fetch product details, so it costs no extra request and no extra charge; it does turn detail enrichment on. Reviews take part in change detection, so leave this off for price-only monitoring. |
maxReviewsinteger | How many of the product page's own reviews to keep per product, newest-first as the storefront orders them. The product page publishes up to 10, which is the ceiling here; the full rating breakdown and review counts are returned regardless. |
maxItemsinteger | Maximum number of records to return across the whole run. Use 0 for unlimited. |
maxPagesinteger | Maximum result pages walked per keyword or pasted link. 0 = walk every page the storefront offers for that search; the run then stops at Max products, at the storefront's own last page, or when a page returns nothing new. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large crawl without returning or charging for products already collected there. For recurring monitoring of the same search, use Incremental mode below instead. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns every matching product as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED products. State is kept separately for each keyword, link, filter and detail setup; use State key when you want to name or deliberately share a monitoring campaign. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to derive a key automatically from this run's search and filter setup. |
emitUnchangedboolean | Off by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, never when Max products capped it or when Resume was used. This returns, and bills, extra synthetic rows. |
ignoreFieldsForChangesarray | Optional. Field names that must NOT count as a change in incremental mode, for example "badges" or "sponsored". A product whose only differences are in these fields is treated as UNCHANGED, so it is not returned or billed as UPDATED. Names match at any nesting depth. The fields still appear in the output of rows that are returned. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
itemIdItem IDchangeTypeChange type (incremental mode) (text)titleTitlebrandBrandpricePricewasPriceWascurrencyCurrencypriceRangeLowpriceRangeLowpriceRangeHighpriceRangeHighratingRatingreviewCountReviewssellerNameSellerShow 41 more fields
sellerTypeSeller typeofferCountOffersavailabilityStatusAvailabilityinStockIn stock (boolean)conditionconditionmodelmodelupcupccategoryPathCategorybadgesbadgessponsoredSponsored (boolean)fulfillmentOptionsfulfillmentOptionsreturnPolicyreturnPolicyspecificationsspecificationsproductHighlightsproductHighlightsratingHistogramratingHistogramrecommendedPercentagerecommendedPercentagereviewsreviewsoffersoffersimagesimagesimageUrlImage (image)descriptiondescriptionshortDescriptionshortDescriptionpriceScopepriceScopesearchQuerysearchQuerysourceUrlsourceUrlurlURL (link)changedFieldsChanged fields (incremental mode) (array)firstSeenAtFirst seen (incremental mode) (date)lastSeenAtLast seen (incremental mode) (date)usItemIdusItemIdproductIdproductIditemTypeitemTypenamenameaverageRatingaverageRatingnumberOfReviewsnumberOfReviewsratingCountsratingCountspriceInfopriceInfofulfillmentTypefulfillmentTypevariantListvariantListsellerIdsellerIdadditionalOfferCountadditionalOfferCountExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "product",
"itemId": "000000000000",
"url": "https://www.walmart.com/ip/Sample-Product-Name/000000000000",
"title": "Sample Product Name 15-inch Laptop",
"brand": "Sample Brand",
"model": "SAMPLE-MODEL-01",
"upc": "0000000000000",
"shortDescription": "A sample product description written for this example.",
"price": 199,
"wasPrice": 249,
"currency": "USD",
"rating": 4.5,
"reviewCount": 123,
"ratingHistogram": {
"1": 3,
"2": 5,
"3": 10,
"4": 25,
"5": 80
},
"recommendedPercentage": 90,
"sellerName": "Sample Seller",
"sellerType": "INTERNAL",
"offerCount": 2,
"offers": [
{
"sellerName": "Sample Seller",
"price": 199,
"condition": "New",
"fulfilledByWalmart": false,
"isBuyBoxWinner": true
},
{
"sellerName": "Sample Reseller",
"price": 209.5,
"condition": "New",
"fulfilledByWalmart": true,
"isBuyBoxWinner": false
}
],
"availabilityStatus": "IN_STOCK",
"inStock": true,
"condition": "New",
"categoryPath": "Electronics / Sample Category / Sample Subcategory",
"badges": [
"Sample badge"
],
"sponsored": false,
"fulfillmentOptions": [
"DELIVERY",
"PICKUP",
"SHIPPING"
],
"returnPolicy": {
"returnable": true,
"freeReturns": true,
"windowDays": 90,
"text": "Free 90 day returns"
},
"specifications": [
{
"name": "Sample specification",
"value": "Sample value"
}
],
"reviews": [
{
"reviewId": "000000000",
"rating": 5,
"title": "Sample review title",
"text": "Sample review text written for this example.",
"submittedAt": "1/1/2026",
"authorNickname": "SampleShopper",
"verifiedPurchase": true,
"helpfulVotes": 3
}
],
"priceScope": {
"postalCode": "00000",
"city": "Sample City",
"state": "ST",
"storeId": "00000"
},
"searchQuery": "sample keyword",
"sourceUrl": "https://www.walmart.com/search?q=sample+keyword",
"resultPage": 1,
"resultPosition": 4,
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-09-04T02:00:00+00:00",
"lastSeenAt": "2026-09-04T02:00:00+00:00"
}Ways to use this data
- Price and stock monitoring: track prices, was-prices and availability for a product list or a category, and get alerted only to what actually changed.
- Marketplace and seller research: compare offers, seller types and fulfillment options across the same product to study competition on a listing.
- Catalog and assortment analysis: pull a whole category or search result to study assortment, brand coverage and pricing bands.
- Review and reputation analysis: collect ratings, rating breakdowns and customer review text for products you sell or compete with.
- Comparison shopping and repricing tools: feed live prices and seller data into your own pricing or comparison app through the API.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Walmart Scraper return?
The documented output for Walmart Scraper includes item id, change type (incremental mode), title, brand, price, was, currency and pricerangelow. Availability of each field depends on the source page and the selected mode.
How much does Walmart Scraper cost?
It costs $1.20 per 1,000 results on the Apify Free plan and from $0.90 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed products on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, and unchanged ones are not billed unless you turn emitUnchanged on.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
