US Grocery Price Comparator
Pricing
from $0.0133 / comparison row
US Grocery Price Comparator
Compare grocery staple prices across 11 major US chains (Walmart, Target, Kroger & affiliates), normalized to unit prices ($/fl oz, $/oz, $/lb, $/count). Features store-brand equivalence, promo vs. regular price separation, private-label margin metrics, and a Whole-Basket Optimizer.
Pricing
from $0.0133 / comparison row
Rating
0.0
(0)
Developer
Hypebridge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
What does US Grocery Price Comparator do?
US Grocery Price Comparator compares grocery staple prices across 11 US supermarket chains (Walmart, Target, Kroger, Fred Meyer, Ralphs, Harris Teeter, King Soopers, Fry's, Mariano's, Smith's and QFC) at the stores nearest your ZIP code. It matches equivalent products (Great Value ≈ Good & Gather ≈ Kroger), converts every price to a unit price ($/fl oz, $/oz, $/lb, $/count, $/gal), separates sale prices from shelf prices, and works out the cheapest way to fill a whole basket.
Compare local grocery prices by ZIP code
Most price comparisons use one national online price. This Actor prices every store from one ZIP code you choose, so every number comes from a real store in the same neighbourhood.
- One input, every store: set
zipCodeand Walmart, Target and each Kroger-family banner resolve to the nearest store to that ZIP. - See exactly which store you are comparing: each row carries
storeLocationswith the store ID, name, address and distance behind every price. - Prices really change by ZIP: Walmart whole milk, 1 gallon, was $2.72 near Cincinnati (45202) and $3.83 near Portland, OR (97201).
- No wrong-region prices: a banner with no store within 25 miles of your ZIP (for example Fred Meyer in Ohio, or Ralphs outside Southern California) is skipped and shown as
nullinstoreLocations. It is never filled in from another region. - Pick a ZIP that has your chains. Kroger-family banners are regional: Fred Meyer and QFC in the Pacific Northwest, Ralphs in Southern California, King Soopers in Colorado, Fry's in Arizona, Smith's in the Mountain West, Mariano's in Chicagoland, Harris Teeter in the Mid-Atlantic and Carolinas. Walmart and Target cover nearly every ZIP.
Why compare grocery prices?
- Shoppers and families: find the cheapest store for your weekly basket, or whether splitting the trip saves money.
- Price and inflation tracking: run the same basket on a schedule (USDA Thrifty Food Plan or a CPI-style core basket) for any metro area.
- Retail and CPG analysts: measure how much cheaper a store brand is than the national brand at the same store, and how prices spread across chains in a market.
What data can it extract?
| Field | Type | Description |
|---|---|---|
query | String | The staple you searched for |
tier | String | store_brand, national_brand or organic |
zipCode | String | ZIP code every store was priced for |
storeLocations | Object | Per store: storeId, name, address, city, state, ZIP (and distanceMiles for Walmart and Target). null = no store near the ZIP |
walmart, target, kroger, … | Object | Matched product with title, brand, stickerPrice, regularPrice, promoPrice, isOnSale, discountPercent, unitPrice, unit, inStock, url, imageUrl, sku; upc for Kroger banners |
cheapestUnitStore / cheapestUnitPrice | String / Number | Cheapest store per unit and its price |
priceSpreadPercent | Number | How much more the most expensive store costs |
privateLabelSavingsPercent | Number | How much cheaper the house brand is than the national brand |
status | String | OK (2+ stores matched), PARTIAL, NO_MATCH or CHILD_FAILED |
market, currency, priceBasis | String | Always US, USD and local_store_zip |
A whole-basket summary is saved as BASKET_SUMMARY in the Key-Value Store: total per store, item coverage, the single-store winner, and the split-basket optimum with the exact dollars saved by shopping at several stores.
How to compare grocery prices near you
- Create a free Apify account if you don't have one.
- Open US Grocery Price Comparator and click Try for free.
- Enter your ZIP code.
- Add grocery items (for example
whole milk 1 gallon) or pick a Preset Staple Basket. - Choose the stores to compare and click Start. Download results from the Dataset tab (JSON, CSV, Excel, HTML) and the basket report from the Key-Value Store.
How much will it cost?
Pay-per-event pricing:
| Event | Cost | When it is charged |
|---|---|---|
comparison-row | $0.02 ($0.0133 on the Gold plan) | Only when a row compares 2 or more stores (status: "OK"). PARTIAL, NO_MATCH and CHILD_FAILED rows are free |
| Actor start | $0.01 ($0.005 on Gold) | Once per run |
Looking up Walmart and Target prices also runs the Walmart Product & Local Store Scraper and Target Product & Local Store Scraper on your account, one run per item per store. At free-plan rates and 8 candidates per store that is about $0.10 per item for Walmart and $0.07 for Target, less on paid plans. A 15-item basket across Walmart and Target is roughly $2.50 in lookups. Kroger-family banners cost $0 in lookups. maxChildSpendUsd caps lookup spend; items past the cap are skipped.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
zipCode | String | "45202" | 5-digit US ZIP code. Every store is priced at the nearest store to it. Replaces the old krogerZipCode and fredMeyerZipCode, which are now ignored |
queries | Array | [] | Grocery items to compare, up to 50 per run |
presetBasket | String | "none" | usda_thrifty_15, cpi_core_25, keto_10 or baking_essentials_8; merged with queries |
stores | Array | ["walmart","target","kroger"] | Any of walmart, target, kroger, fred_meyer, ralphs, harris_teeter, king_soopers, frys, marianos, smiths, qfc |
candidatesPerStore | Integer | 8 | Search results inspected per store (3–12). Higher finds more store-brand matches |
matchMode | String | "all_tiers" | all_tiers, private_label_equivalent or exact_brand_only |
maxChildSpendUsd | Number | 5.0 | Cap on Walmart/Target lookup spend for the run (max 20) |
Example input
{"zipCode": "97201","queries": ["whole milk 1 gallon", "large white eggs 12 ct"],"stores": ["walmart", "target", "fred_meyer"],"candidatesPerStore": 8}
More examples
A full USDA basket for a Denver household, Kroger-family banners only (no lookup cost):
{"zipCode": "80203","presetBasket": "usda_thrifty_15","stores": ["king_soopers", "kroger"]}
Store-brand versus national-brand check for one item in Phoenix:
{"zipCode": "85004","queries": ["salted butter 16 oz"],"stores": ["walmart", "target", "frys"],"matchMode": "private_label_equivalent","maxChildSpendUsd": 1}
Output
Saved to the Dataset tab, one row per item and comparison tier. Download as JSON, CSV, Excel or HTML.
Sample output
{"query": "whole milk 1 gallon","tier": "store_brand","market": "US","currency": "USD","priceBasis": "local_store_zip","zipCode": "45202","storeLocations": {"walmart": { "name": "Ft Wright Supercenter", "city": "Ft Wright", "state": "KY", "distanceMiles": 4.94 },"target": { "name": "UC Calhoun St", "city": "Cincinnati", "state": "OH", "distanceMiles": 1.55 },"kroger": { "name": "Kroger - Kroger On the Rhine", "city": "Cincinnati", "state": "OH" }},"walmart": { "title": "Great Value Whole Vitamin D Milk, Gallon", "stickerPrice": 2.72, "unit": "gal", "unitPrice": 2.72, "matchType": "PRIVATE_LABEL_EQUIVALENT" },"target": { "title": "Vitamin D Whole Milk - 1gal - Good & Gather", "stickerPrice": 2.89, "unit": "gal", "unitPrice": 2.89, "matchType": "PRIVATE_LABEL_EQUIVALENT" },"kroger": { "title": "Kroger Vitamin D Whole Milk Gallon", "stickerPrice": 3.29, "unit": "gal", "unitPrice": 3.29, "matchType": "PRIVATE_LABEL_EQUIVALENT" },"cheapestUnitStore": "walmart","cheapestUnitPrice": 2.72,"priceSpreadPercent": 20.96,"status": "OK"}
Tips
- Use a ZIP where your chains operate. If a banner comes back
nullinstoreLocations, it has no store within 25 miles of that ZIP. - Run the same ZIP and basket on a schedule to track local grocery inflation over time.
inStockisnullwhen a store does not report stock; those items are still compared and shown as unknown. Items a store reports as out of stock are excluded.auditRejectionsexplains every skipped candidate.UNPRICED:PRICE_STORE_MISMATCHmeans Target only had a price from a different store than your local one, so it was left out rather than shown.- Walmart and Target listings do not include UPCs, so
upcis only filled for Kroger-family banners. - Sale prices are shown in
promoPriceanddiscountPercent; they are empty when the matched product is not on sale. - Start with 3–5 items to check cost before running a 25-item basket.
Limitations
- One ZIP code per run; run the Actor once per city to compare cities.
- US stores only, in US dollars and US units.
- Prices are current online shelf prices for the resolved store; in-store promotions that are not listed online are not included.
- The nearest store is chosen automatically. Walmart's nearest store is a Supercenter, which can be a few miles farther than the closest smaller Walmart.
- Matching uses the top search results per store (
candidatesPerStore), so a product ranked lower than that can be missed.
FAQ
Are the prices local to my ZIP code?
Yes. Walmart, Target and Kroger-family prices come from the nearest store to your zipCode, and storeLocations tells you which store. Prices are the store's current online shelf price for that location.
Why is a store missing from my results?
Kroger-family banners are regional. If a banner has no store within 25 miles of your ZIP, it is skipped and null in storeLocations. Try a ZIP in that banner's region.
Can I compare stores in different cities?
One run uses one ZIP. To compare cities, run the Actor once per ZIP.
Is scraping grocery prices legal?
This Actor only extracts publicly available product and price data. Always check each site's Terms of Service and make sure you have a legitimate purpose.
Does it support stores outside the US?
No. It is US-only (USD, US customary units). Items naming non-US retailers or currencies, such as Tesco or EUR, are skipped with a warning.
Support
- Bugs or feature requests: Issues tab
- Programmatic access: API tab
Disclaimer: Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.