DEV Community

Crawler Bros
Crawler Bros

Posted on

How to Scrape Local Grocery Deals by Postal Code with Flipp

Retail analysts, e-commerce managers, and consumer apps face a major hurdle when tracking grocery pricing: local fragmentation. A gallon of milk or a pound of chicken breast does not carry a single uniform national price. Instead, major supermarket chains run regional weekly circulars, meaning prices, discounts, and active promotions shift weekly by store location and postal code.

Manually visiting multiple retail portals or flipping through printed circulars to benchmark prices across chains like Kroger, Publix, ALDI, Walmart, Target, and Costco is inefficient. The flipp-grocery-deals-scraper actor solves this by pulling structured, store-level weekly-ad and online prices directly from Flipp across any US ZIP code or Canadian postal code.

Why Track Store-Level Weekly Ad Data?

Weekly circulars dictate the promotional strategies of major North American grocers. Collecting this data programmatically allows market researchers and developers to:

  • Compare weekly-ad pricing across competing retailers in the exact same market.
  • Track grocery price fluctuations over time by executing scheduled runs.
  • Aggregate active manufacturer and digital coupon offers by region.
  • Build local price-comparison feeds or "deals near me" applications.
  • Audit merchant promotional compliance and sale stories (e.g., promotional copy like "with digital coupon").

Because the actor interacts with Flipp's public price-search API, it requires no login, no API keys, and no residential proxies.

Core Capabilities of the Flipp Grocery Deals Scraper

The actor supports four operational modes tailored to different research needs:

  • search: Queries specific product keywords (e.g., chicken breast, paper towels) across all nearby store circulars and marketplace listings.
  • flyers: Lists all active weekly-ad circulars available near a given postal code.
  • flyerItems: Extracts every single item printed inside a specific circular using its numeric flyerId.
  • merchants: Fetches Flipp's complete directory of ~2,500 retailers, providing merchant IDs and names to refine searches.

Key Input Schema Controls

You can customize your data collection using several input parameters:

  • postalCode: The target US ZIP code (such as 45202) or Canadian postal code (such as K1A 0B1). This determines which local store circulars are retrieved.
  • query: The product search keyword when operating in search mode.
  • itemType: Filter search results by flyer (in-store circular pricing with valid date ranges), ecom (online marketplace items), or all.
  • sortBy: Reorder search results before filters are applied using options like relevancy, price_low_to_high, or price_high_to_low.
  • includeCoupons: A boolean switch that emits digital coupon offers alongside product results, including savings text, redemption disclaimers, and matched products.
  • merchantName and category: Substring filters to keep results matching specific chains (e.g., Kroger) or departments (e.g., Beverages).

Structured, Clean Output

The scraper outputs clean records where empty fields are omitted rather than filled with null values. Depending on the mode, records contain essential pricing data:

  • Product records provide itemId, name, currentPrice, originalPrice, saleStory, merchantName, category, imageUrl, and validity dates (validFrom and validTo).
  • Flyer item records return cut-out circular images via imageUrl, percentage markdowns via discountPercent, and merchantPageUrl where available.
  • Digital coupon records output couponId, savingsText (e.g., "$2.00 off 1"), disclaimerText, and productNames[].

How to Extract Local Weekly Ad Pricing Step-by-Step

Here is a straightforward walkthrough for collecting local grocery prices using the actor on Apify:

  1. Select the Mode and Location: In the actor input, set mode to search and enter your target area in postalCode (e.g., 45202 for Cincinnati or 90210 for Beverly Hills).
  2. Define Product Search Terms: Enter your target item in the query field (e.g., milk or chicken breast).
  3. Apply Filters: Set itemType to flyer if you only want in-store circular deals, and configure sortBy to price_low_to_high to prioritize the lowest prices first.
  4. Optionally Enable Coupons: Set includeCoupons to true to surface manufacturer digital coupons matched to your search.
  5. Run the Actor and Export Data: Execute the run. Once complete, export the dataset in JSON, CSV, or Excel formats for downstream analysis or database storage.

Practical Questions and Workflows

How do I collect every item from a specific store circular?

Run the actor first in flyers mode with your target postalCode. Identify the numeric flyerId for the retailer you wish to audit (such as ALDI or Meijer). Then, perform a second run with mode set to flyerItems and pass the numeric ID into the flyerIds array (e.g., ["8041414"]). The actor will extract every printed clipping and item record from that specific ad.

Can I build historical pricing trends?

Flipp serves only currently active weekly circulars and does not store historical prices. However, you can build a historical price dataset by scheduling the actor to run at recurring intervals (such as weekly when new circulars drop) and saving each dataset to track price movements over time.

Why do identical queries produce different results across postal codes?

Flyer pricing is tied directly to local stores. A retailer may run a special discount in one market while excluding it in another, or the chain may not operate within that specific ZIP code. The results accurately mirror the active promotional circulars distributed in that immediate postal region.


Ready to try it yourself? Run *Flipp Grocery Deals Scraper** on the Apify Store -- no setup required.*

Top comments (0)