Yugenox Data

Retail, weekly flyers

A weekly flyer API for Canadian and US retailers

Give it a Canadian postal code or a US ZIP code and get the flyer deals near it as rows: product, store, sale and regular price, price per item and per kg, discount, the dates the deal runs and the flyer it came from. Search every flyer for a product, or pull every item in every flyer. $1.50 per 1,000 deals, with no Flipp account or API key.

Does Flipp have an API?

Flipp publishes FlyerKit, an API its own documentation describes as access to Flipp's publication data "for use in merchant or publisher applications". Every call needs an access token, and the documentation says to get one from your Flipp account manager (FlyerKit v3.0 documentation, read October 6, 2026). That route is for retailers and publishers showing flyers in their own apps. If you want the deals any shopper sees for a postal code, across every store, this Actor returns them as JSON, CSV or Excel. The README names Walmart, Costco, No Frills, Loblaws, Metro, Sobeys, Shoppers Drug Mart, Canadian Tire, Home Depot, Best Buy, Target, CVS, Walgreens, ALDI and Lowe's among the 2,500+ retailers.

Three ways to use it

Mode (mode)You giveYou get
search (default)Postal codes and search terms (milk, chicken breast, tv)Every matching flyer deal near each postal code, plus in-store sale prices and, if you ask, online deals
flyersPostal codes, optionally stores, categories or keywordsEvery item printed in every flyer near each postal code
flyerIdsFlyer ids or flipp.com flyer linksEvery item in those flyers

Past Flipp's 200-result cap

A search on Flipp stops at 200 results. With completeCoverage on (the default), the Actor sees when a search hits that 200-result cap, re-runs it for each store that has matches and merges the results. In the README's example, "chicken" near a downtown Toronto postal code went from 197 to 715 deals in about 30 seconds, which is $1.07 at $1.50 per 1,000. Turn it off for a quick top-200 sample. sortBy can put the lowest prices first, and every row gets a priceRank within its search (1 = the lowest price, by $/kg for weight-priced items).

Every item in every flyer

Full-flyer mode reads whole flyers instead of searching them. For one Vancouver postal code that is about 18,000 items from 108 flyers in 12 seconds (README): $27.00, plus $9.00 if you add item details. One downtown postal code covers the flyers for most of a metro area. For national coverage, regionPresets has ca-major-cities (46 cities in every province and territory, about 1,200 flyers) and us-major-cities (50 metros); a flyer shared between cities is read once, and dedupeAcrossPostalCodes (on by default) saves each deal once. Narrow it with merchants, categories or searchTerms, and keep only deals running today with onlyValidNow.

Prices you can compare

FieldWhat it holds
currentPrice, originalPriceSale and regular price, as numbers; currency is CAD or USD from the flyer itself
effectivePrice, multiBuyPrice for one item, with "2 for $5" deals divided out (multiBuy keeps quantity, total and per-item price)
priceUnit, pricePerKgWhat the price is per (each, lb, kg, 100 g, pack), and $/kg for weight-priced items
discountPct, dollarsOffThe discount against the regular price, or as the retailer states it
validFrom, validToWhen the deal runs
merchant, flyerId, itemTypeThe store and flyer; itemType is flyer, store (in-store price at the nearest branch, with storeAddress) or online

A weekly price-drop feed

Turn on trackChanges and run the same input on a weekly Apify schedule. The Actor keeps a small snapshot of the last run for each distinct input in your own Apify account, and each row gets changeType (new, price_drop, price_up or unchanged) with previousPrice. The run's CHANGES record lists the totals and the deals that ended. Most retailers publish new flyers weekly, often a day or two before they start, so a Thursday schedule catches the new week. This input is the README's weekly No Frills alert across Canada:

Input
{
  "mode": "flyers",
  "regionPresets": [
    "ca-major-cities"
  ],
  "merchants": [
    "No Frills"
  ],
  "trackChanges": true
}

What it costs

One price on every Apify plan, read from the Actor's pricing on 2026-10-15. Deals your filters drop and duplicates are not charged.
EventPriceCharged for
Deal$0.0015Each deal saved to your dataset
Item details$0.0005Each deal enriched when includeItemDetails is on
Run start$0.001Once per run, per GB of memory (the default 1 GB is one)

500 deals cost $0.75 plus the $0.001 run start; with item details on, add $0.25. Coverage depends on which retailers publish flyers on Flipp near each code, so test a postal code or ZIP you care about with a small run first.

Limits

Ask for it from ChatGPT, Claude or Cursor

The Flipp Flyer Deals Scraper works as a tool in ChatGPT, Claude, Cursor and VS Code through Apify's hosted MCP server. Add this URL as a custom connector and sign in with your Apify account; runs bill to that account. Then ask in plain English, for example "find the lowest price per kg for chicken breast in flyers near M5V 2T6 this week".

MCP server URL
https://mcp.apify.com/?tools=fetch-actor-details,yugenox/flipp-flyer-deals-scraper

The AI setup guide walks through each client.

Run it from code

Chicken breast and eggs near one Toronto postal code, lowest price first, at most 500 deals: $0.75 or less, plus the run start. The same input with a US ZIP code works too.

JavaScript
// Save as run.mjs, then: npm i apify-client && APIFY_TOKEN=... node run.mjs
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('yugenox/flipp-flyer-deals-scraper').call({
  postalCodes: [
    "M5V 2T6"
  ],
  searchTerms: [
    "chicken breast",
    "eggs"
  ],
  sortBy: "price_low_to_high",
  maxItems: 500
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.merchant, item.name, item.effectivePrice);

Not affiliated with Flipp, Loblaw Companies Limited, its banners, PC Optimum or any retailer named on this page.

Questions people ask

Does Flipp have a public API for flyer deals?

Flipp's FlyerKit API is for merchant and publisher apps, and its access tokens come from a Flipp account manager. This Actor reads the deals any shopper can see for a postal code instead, at $1.50 per 1,000 deals.

Which postal codes work?

Any full Canadian postal code (M5V 2T6) or US ZIP code (10001). The first three characters of a postal code are not enough.

How do I cover a whole city or the whole country?

One downtown postal code covers most of a metro area's flyers. For national coverage use regionPresets: ca-major-cities (46 cities) or us-major-cities (50 metros). Flyers shared between cities are read once.

Does it keep price history?

It doesn't store an archive. Turn on trackChanges and schedule the same input weekly: each run compares every deal with the previous run and marks it new, price_drop, price_up or unchanged.

How am I charged?

$0.0015 per deal saved, plus $0.0005 per deal with item details on, plus $0.001 per run start (per GB of memory; the default 1 GB is one). Deals removed by your filters or as duplicates are not charged.

Is it legal to scrape Flipp?

The Actor collects only public flyer deals, prices and store locations that anyone can see on Flipp without an account. That is generally legal, but you are responsible for how you use it, including Flipp's terms. Ask a lawyer if you are unsure.

Run it on your own data

Open the Flipp Flyer Deals Scraper on Apify, enter a postal code or ZIP and press Start. You pay per deal from your own Apify account, with no subscription to us.

Last updated 2026-10-15.