US Grocery Deals - Weekly Ad Prices by ZIP Code
Pricing
from $2.00 / 1,000 deal results
US Grocery Deals - Weekly Ad Prices by ZIP Code
Current weekly ad deals from US grocery chains (Kroger, Safeway, Albertsons, Publix, H-E-B, ALDI, Target, Meijer and more) for any ZIP code. Search by product, compare prices across chains and ZIPs, track deals on a schedule.
Pricing
from $2.00 / 1,000 deal results
Rating
0.0
(0)
Developer
Jimmy A
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
an hour ago
Last modified
Categories
Share
US Grocery Deals - Weekly Ad Prices from Every Major Chain by ZIP Code
Current weekly ad deals from US grocery chains for any ZIP code, normalized into one clean schema. Search by product, filter by chain, and compare prices across Kroger, Safeway, Albertsons, Publix, H-E-B, ALDI, Lidl, Meijer, Target, Stop & Shop, Wegman's, Fred Meyer, Food 4 Less, Sprouts and many regional chains - in a single run.
This actor reads the same public weekly ad data that shoppers see on the flyer aggregators. It is HTTP-first: no browser, no proxies, no login. Weekly ads are local, so you pass one or more ZIP codes and get the ads that actually run in each area.
What you get
One record per deal:
{"dealId": 1040416178,"query": "milk","zipCode": "10001","name": "SKIM PLUS MILK","merchant": "Bravo Supermarket","merchantId": 2806,"currentPrice": 5.99,"originalPrice": null,"currency": "USD","priceText": null,"saleStory": null,"category": "Food, Beverages & Tobacco > Beverages","brandIds": ["5411"],"flyerId": 8133904,"validFrom": "2026-09-18T04:00:00+00:00","validTo": "2026-09-25T03:59:59+00:00","imageUrl": "https://f.wishabi.net/page_items/433752774/1789389980/extra_large.jpg","itemType": "flyer","source": "Flipp public search (weekly ad data published by merchants)","fetchedAt": "2026-09-23T19:08:30.659Z"}
currentPrice and originalPrice are numeric where the ad gives a clean price. priceText keeps the raw per-unit text (e.g. /lb) and saleStory keeps the promo line (e.g. BOGO, 2 for $5, loyalty offers) so nothing is lost. validFrom/validTo are the ad's run dates.
Coverage
Tested in 12 metros in September 2026 (including New York, Boston, Atlanta, Chicago, Cincinnati, Dallas, Houston, Phoenix, Seattle, San Francisco and Los Angeles). Milk returned 11-47 deals per ZIP from 6-16 chains. Chicken returned 25-99 deals from 8-21 chains. Narrower terms return fewer. National chains (Target, ALDI, Dollar General, Kroger banners, Albertsons banners) plus the regional and independent grocers that publish weekly ads.
Browse whole weekly ads (flyers mode)
Set mode to flyers to get every item of every weekly ad near each ZIP code, instead of searching by product. Filter by ad category (categories, default ["Groceries"]), by chain (merchants), and optionally by words in the item name or brand (queries).
{ "mode": "flyers", "zipCodes": ["10001", "60614"], "categories": ["Groceries"], "maxItems": 100 }
Categories come from Flipp: Groceries, Pharmacy, Home & Garden, General Merchandise, Pets, Electronics, Specialty, Sporting Goods, Automotive, Fashion. In a September 2026 test, 10001 (New York) had 33 grocery ads and 60614 (Chicago) had 38. An ad holds roughly 50-100 priced items, so a full metro sweep runs to thousands of items. Each ZIP stops at maxItems (default 200, about $0.40 at $0.002 per item).
Flyers-mode rows add mode: "flyers", brand, discount (as Flipp publishes it), flyerName and flyerCategories. They have no priceText or saleStory, because the ad source does not carry them.
Filters
- zipCodes (required): one or more 5-digit US ZIP codes, e.g.
10001. ZIP+4 is accepted and trimmed. Each ZIP is searched for every term, so you can compare the same product across cities in one run. - queries (required): one or more product terms (
milk,eggs,chicken,diapers). One search per term per ZIP. - merchants: only keep these chains (case-insensitive substring, punctuation ignored, so
WegmansmatchesWegman's). Empty = all chains. - maxItemsPerQuery: cap deals per search term per ZIP. The source returns at most 150 items per term.
- onlyWithPrice: skip image-only promos that carry no parseable price (default true).
Use cases
- Price comparison apps: cheapest eggs across every chain near a shopper this week
- Deal alerts: run on a schedule, diff against last week, notify on a target price
- Meal-planning and budgeting tools: pull this week's deals for a shopping list by ZIP
- Market and CPG research: track promo depth and frequency by brand, chain, and metro over time
- AI agents: ask "what milk deals are near 60614 this week" through the standby API endpoint
API / Standby mode for AI agents
Call the actor as a synchronous HTTP endpoint:
GET /?zip=60614&q=milk&merchant=Jewel
Browse mode works the same way:
GET /?zip=10001&mode=flyers&category=Groceries&maxItems=50
Returns { count, deals: [...] } immediately. Works as a tool for agent frameworks that support Apify actors.
Base URL: https://gratifying-graph--us-grocery-deals.apify.actor. Add your Apify API token as ?token=YOUR_TOKEN or an Authorization: Bearer YOUR_TOKEN header. Invalid input returns HTTP 400 and is not charged.
Pricing
Pay per event:
| Event | Price |
|---|---|
| Actor start | $0.0005 |
| Per deal record | $0.002 |
| API call (standby) | $0.02 |
A daily check of three products in one ZIP returns roughly 50-170 deals, about $3-10/month. Many products or many ZIP codes scale linearly - tell us your use case if you need a snapshot tier.
FAQ
Where does the data come from? The public flyer search backend used by US weekly ad aggregators - the same ads the chains publish for shoppers each week. The actor reads logged-out, public, non-personal data only.
Are these in-store shelf prices? No. These are advertised weekly ad prices for the stated validity window. Regular shelf prices are not part of weekly ad data.
Why do I need a ZIP code? Weekly ads are regional. A deal in Chicago may not run in Dallas, and the same chain ships different ads by area.
Why reject some ZIP codes? The source returns a generic fallback set for a malformed or unassigned ZIP instead of an error. The actor rejects malformed ZIPs and unassigned ranges (below 00501) before charging. A real ZIP with no weekly ads returns 0 deals.
Why do some deals show a bundle price?
Multi-buy offers like 2/$5 or BOGO keep the bundle total in currentPrice. The multiplier is in priceText. Check it before comparing unit prices.
What does onlyWithPrice skip? Ad clippings with no price. Most have no product name either.
Canada? Use the sibling actor Canada Grocery Deals - same schema, postal codes, EN + FR.
CSV export? Every Apify dataset exports as CSV, JSON, Excel, or via API.
Feedback
Found a bug or need a field? Open an issue on the Issues tab. The actor is checked twice a day and issues get a fast fix.
If this actor saves you time, a short review on the Store page helps other people find it.