# Changelog of Walmart Scraper — Products, Prices, Sellers & Reviews (`memo23/walmart-scraper`) Actor

- **URL**: https://apify.com/memo23/walmart-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/memo23/walmart-scraper.md

## Changelog

### 2026-10-30 - Rows priced for the wrong store are no longer returned

- With `storeId` (or a `state` that was set), every search, category and product page is now checked against the run's store before its rows are saved. At some hours Walmart prices most pages for its default store in Sacramento, CA, whatever store the run was given; until now those rows were returned and charged with `locationStoreId` 3081. Such a page is now retried, and if it never comes back priced for the run's store it is left out and not charged. The log says how many pages were left out.
- When almost every page comes back for a different store, the run stops early. If nothing could be returned, it fails with a message to rerun later, and only the actor start is charged.

### 2026-10-29 - Stores set before are set again in seconds

- The actor now remembers every store it gets Walmart to assign, across all runs. A later run for the same store (or a `state` that one of them is in) reuses it and is usually priced for that store within seconds, with no store search. If Walmart no longer gives the remembered store, the run searches as before. Scheduled tracking of the same stores gains the most: the search, and the minutes when Walmart refuses most first visits, now matter mainly for a store's first run.

### 2026-10-29 - storeId reaches stores the old exit pool could not

- A `storeId` (or `state`) search now sends half of its first visits through a second residential exit pool aimed at the store's own city. On 2026-10-29 the original pool had no usable exits in Tigard, OR, so store #5935 could not be pinned; through the second pool it binds. Stores the original pool already reached are searched the same way as before, with half the visits on each pool.
- If the second pool is unavailable when a run starts, the search carries on with the original pool alone, as before.
- A `storeId` search that cannot get a single visit placed in the store's state now stops after its first pass, about a minute, instead of grinding a second one. That happens when most visits are refused or never connect and the rest land in other states. The message says so and suggests a rerun in a few minutes or a `state`. Only the actor start is billed, as before.

### 2026-10-25 - Store binding is faster to give up and clearer about why

- When you set a `storeId` and Walmart is refusing almost every first visit (a block window that comes and goes by the minute), the run now stops after about a minute instead of grinding for three, and the message says Walmart was blocking nearly every visit and to rerun shortly or set a `state`. Only the actor start is billed, as before, and no rows from the wrong store are ever returned.
- Each store probe now gets more exit attempts, so a `storeId` binds a little more often in a half-blocked window.
- README: a new FAQ, "How reliable is setting a storeId?", explains that exact-store binding is best effort, that a rerun usually works, and that `state` keeps scraping when a store cannot be pinned.

### 2026-10-24 - Barcode lookup

- New `barcodes` input: look products up by UPC, EAN or GTIN, one code per line. Codes are matched in Walmart's 14-digit GTIN form, so a 12-digit UPC works too. Each row keeps the code you entered in `searchQuery` and carries the Walmart `usItemId`, ready to feed back into `productIds` for the full record, reviews or sellers.

### 2026-10-23 - Store and state targeting

- New `storeId` and `state` inputs for walmart.com: price and stock a whole run for one store, or for any store in a US state. Before scraping, the actor gets Walmart to assign that store and names it in the log; every product row carries `locationStoreId`, `locationZip`, `locationCity` and `locationState` so you know which store each price and stock reading belongs to.
- A `storeId` run that cannot reach the exact store falls back to a store in the same city when there is one, and stops before scraping (start fee only) when there is not. A `state` run keeps scraping with each request's own location when it cannot pin a store.
