Grocery Cart Price & Deal Finder
Under maintenancePricing
from $1.00 / 1,000 results
Grocery Cart Price & Deal Finder
Under maintenanceCompare grocery searches such as ham, milk, eggs near a ZIP code. Groups local in-stock listings into named-brand, store-brand, organic comparison tiers; normalizes unit prices; compares full and split carts; matches weekly-ad deals when product and chain align; and caps downstream source spending.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Chris Johnson
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Enter ordinary grocery names and a ZIP code to compare nearby grocery listings and weekly-ad deals. You can type ham, milk, or eggs; a brand and package size are optional. Put a quantity at the start of a line, such as 2 x milk, when you need more than one package.
Who this helps
Shoppers comparing grocery prices and weekly-ad deals near a ZIP code using everyday item names.
What you get
- Live retailer listings with the actual listing name, brand, package size, current price, reported regular price, sale status, and unit price when the source provides it.
- Reported in-stock status and the retailer branch's address when available.
- Retailer-reported unit prices converted to a shared base unit when the unit is recognized, so compatible package sizes can be compared.
- Product listings grouped into named-brand, store-brand, and organic tiers, with a choice to see all tiers, store-brand candidates only, or the same reported brand.
- Straight-line distance from the ZIP code center to branch coordinates, plus an in-radius full-cart comparison and a lowest-price split-basket estimate.
- Local weekly-ad deals with price and advertised validity dates.
- A separate coupon lead when returned flyer text explicitly mentions a coupon or digital offer.
- Carefully matched weekly-ad offers when the chain and product names line up and no package-size conflict is detected.
- Like-for-like basket comparisons showing the cheapest complete branch cart versus a split cart for the same product tier and variants, including the price difference.
- Links and timestamps for returned source records, plus source Actor run IDs, statuses, and reported usage charges in the summary.
The Actor keeps generic input convenient and returns the real product names for review. For example, a search for ham may return different cuts, brands, or package sizes. It does not assume those products are interchangeable. Product tiers are inferred from the source's brand and product tags plus a list of common store brands. A tier is a helpful grouping, not a guarantee of equivalence. Basket totals use each selected package's listed price times the requested quantity; they do not normalize package sizes.
How local totals work
Store carts group listings by the exact branch ID returned by the shopping source. A store cart includes only listings explicitly reported in stock, with a known branch and distance within your selected radius. The distance is a straight-line estimate from the ZIP code center, not driving distance. A complete cart means a priced listing was found for every requested item at that branch; check the selected names, brands, and sizes before relying on the total.
The split-basket estimate selects the lowest observed in-stock package price for each item from eligible local offers. It may use several branches. When a branch has coordinates, offers outside the selected radius are excluded. If the source returns offers for your ZIP code but omits exact branch coordinates, those offers remain available in the split-basket estimate and are marked zip_scoped_distance_unverified; they are not claimed to be within the radius. Separate unit-price comparison records compare retailer-reported or package-derived prices on a shared basis, such as price per ounce or fluid ounce. They compare listings only within a product tier and variant group. If a large weight-based listing does not make clear whether its price is per pound or for the whole package, it is left out of unit-price rankings instead of being guessed. Tier labels and store-brand equivalence are inferred from listing names, brand fields, and source tags; they are candidate groupings, not proof that brands, cuts, or quality are equivalent. Basket comparison records show the exact products selected and compare a complete store cart with a split cart using the same tier and variant for each item. Tax, delivery, membership pricing, and checkout-only discounts are excluded.
Retailer sale prices are included in cart totals when the source reports them as current listing prices. A weekly_deal_match record is created only when the retailer chain matches and product names overlap strongly, with any detected package-size conflict rejected. The flyer source does not identify the exact branch, so flyer prices are never merged into cart totals. If the package size or promotion format is unclear, the record says the prices are not directly comparable. The Actor never subtracts coupon savings from a total. A coupon lead means the returned flyer text mentioned a coupon; check the store account, clipping requirements, item eligibility, limits, and checkout price.
Inputs
- Your grocery list: one simple item per line, up to 25 items; optional quantity prefix such as
2 x milk. - ZIP code: five-digit U.S. ZIP code.
- Search radius: 1–100 miles, default 25.
- Stores to include: optional grocery retailer names. Leave empty to search up to the 8 closest recognized grocery chains found within the selected radius. Store discovery can also return unrelated businesses, which are excluded from product searches. A user-supplied retailer list overrides automatic selection.
- Include weekly ads: enabled by default.
- Maximum source charges: defaults to $1 per run, allocated across the downstream store, product, and flyer searches. The normal 4-item sample still allows up to 100 store records, 300 product records, and 40 flyer records under these caps. Set a lower cap for a smaller search or a higher cap for broader results.
- Product matching: compare all available tiers, store-brand candidates, or listings with the same reported brand.
- Result caps: tune live product and weekly-ad result counts to manage source usage.
Example:
{"cartItems": ["ham", "milk", "eggs", "2 x bread"],"zipCode": "08234","radiusMiles": 25,"includeFlyerDeals": true,"sourceSpendLimitUsd": 2,"matchMode": "all_tiers"}
No provider API key is required in the input.
all_tiers is the default. It keeps store-brand candidates, other named brands, organic products, and unclassified listings in separate comparison groups. private_label_equivalent keeps listings classified as store brands. exact_brand_only keeps listings with a reported brand and groups by that brand. Each listing retains the brand and product name used to make the grouping, and the output marks product equivalence as unverified.
Source usage and costs
This Actor calls two other Apify Actors under the account running it:
abotapi/instacart-grocery-price-scraperdiscovers local stores and searches retailer listings. Its published price is $1.50 per 1,000 product or store results. It requires an Apify residential proxy; proxy usage can add cost, and the source notes that residential proxies are not included in the free plan.gratifying_graph/us-grocery-dealssearches local weekly-ad deals when enabled. Its published pricing is $0.0005 per run start plus $0.002 per returned deal record.
These are separate source Actor charges in addition to any price for this Actor. Actual charges depend on results, proxy usage, and current source pricing. The run summary includes source run information and any usage charge values exposed by Apify.
The sourceSpendLimitUsd input allocates a total maximum across the downstream runs and passes each run an Apify spending cap and result cap. The default allocation reserves 15% for local-store discovery, 60% for product search, and the remainder for weekly ads. Without weekly ads, the product search receives the unallocated share. The summary lists each cap and result limit. If a source hits its allocated cap, its returned results may be partial. This does not cap the price of running this Actor itself.
Dataset records
The dataset contains retail_offer, unit_price_comparison, weekly_ad_deal, coupon_lead, weekly_deal_match, store_cart, basket_comparison, and split_basket records. The summary is saved as the SUMMARY key-value record. Retail offers and flyer deals stay separate so an agent or person can tell observed shelf listings from advertised offers. Store-cart totals include a comparison profile; only compare them as like-for-like when their profile keys match. Each record carries its source, evidence, and limits where available.
This Actor does not place orders, access retailer accounts, or verify checkout prices.
Related Actors
- Exact-SKU Shopping Comparison — Compares supplied offers for the exact same product code.
- Social Purchase Intent API — Finds public social posts that signal purchase interest.