Canada Restaurant Lead Finder - POS & Delivery Detection avatar

Canada Restaurant Lead Finder - POS & Delivery Detection

Under maintenance

Pricing

from $5.00 / 1,000 base restaurant records

Go to Apify Store
Canada Restaurant Lead Finder - POS & Delivery Detection

Canada Restaurant Lead Finder - POS & Delivery Detection

Under maintenance

Enriched Google Maps leads for Canadian restaurants, all 13 provinces. Detects POS (Lightspeed, TouchBistro, Toast), payments (Moneris), delivery (SkipTheDishes, Uber Eats) and reservations. Bilingual EN/FR, Canadian postal codes. For restaurant SaaS and delivery sales teams.

Pricing

from $5.00 / 1,000 base restaurant records

Rating

4.0

(1)

Developer

Seibs.co

Seibs.co

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

16 hours ago

Last modified

Share

Canada Restaurant Lead Finder

TL;DR for restaurant-tech, food supply, and B2B SaaS reps selling INTO Canadian independent restaurants: Pulls Canadian independent restaurants, cafes, brasseries, food trucks, and bars from Google Maps across all 13 provinces and territories, with detected POS (Toast, Square, Clover, Lightspeed, TouchBistro, Revel), online ordering and delivery (SkipTheDishes, DoorDash, Uber Eats, Ritual, Fantuan, ChowNow), reservation (OpenTable, Resy, Tock, Libro), emails, and social. Bilingual: classifies English and Quebec French listings. Canada-correct: 2-letter province codes, normalized A1A 1A1 postal codes, province inferred from the postal code. Tim Hortons, A&W, Swiss Chalet, St-Hubert, Boston Pizza, Pizza Pizza, La Belle Province and other Canadian + cross-border chains are pre-blocked. Drop-in sibling of our US Restaurant Lead Finder: identical output schema and pricing.

Run it in 30 seconds

# Via the Apify Python SDK
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("seibs.co/restaurant-lead-finder-canada").call(run_input={
"search_terms": ["restaurant", "cafe"],
"locations": ["Toronto, ON", "Montreal, QC"],
"enrichment_tier": "premium",
"max_results_per_query": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Or via curl:

curl -X POST "https://api.apify.com/v2/acts/seibs.co~restaurant-lead-finder-canada/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"search_terms": ["restaurant", "cafe"], "locations": ["Toronto, ON"], "enrichment_tier": "premium", "max_results_per_query": 50}'

Or click "Try for free" on this page if you prefer the no-code UI.

What does it do?

Pulls Canadian independent restaurants from Google Maps and enriches each record with website-derived signals: detected POS systems (Toast, Square, Clover, Lightspeed, TouchBistro, Revel, Aloha, Micros), online ordering and delivery (SkipTheDishes, DoorDash, Uber Eats, Ritual, Fantuan, ChowNow, BentoBox), reservation platforms (OpenTable, Resy, Tock, Libro, SevenRooms), emails, social profiles, and owner names. The single biggest filter restaurant SaaS sales teams want is "show me independents in this Canadian metro who DON'T already use Toast / Lightspeed" or "show me restaurants on SkipTheDishes only with no direct ordering." That's exactly what this actor produces.

Why a separate Canadian actor?

It is the same data engine as our US Restaurant Lead Finder, localized so the output is genuinely Canada-correct, not a label swap:

  • Geography. Province/territory codes (AB BC MB NB NL NS NT NU ON PE QC SK YT), Canadian postal-code normalization to A1A 1A1, and province inference from the postal code's Forward Sortation Area when Google Maps omits the province. Country is set to CA. A genuine US result from a border-city query (Windsor/Detroit, Vancouver/Bellingham) is left labeled US, not relabeled CA.
  • Bilingual classification. Quebec French category needles on every service line (brasserie, boulangerie, rotisserie, casse-croute, poutine, taverne, bar a vin).
  • Canadian delivery stack. SkipTheDishes (the dominant Canadian aggregator), Ritual, and Fantuan added to tech detection, alongside the US aggregators that operate in Canada.
  • Canadian chains pre-blocked. Tim Hortons, A&W, Harvey's, Swiss Chalet, St-Hubert, Boston Pizza, Pizza Pizza, Mary Brown's, La Belle Province, Valentine, Normandin and more, on top of the cross-border US chains.

POS note: TouchBistro (Toronto) and Lightspeed (Montreal) are Canadian companies and heavily deployed here, so they are first-class detections.

Input

Minimum input is search_terms and locations.

{
"search_terms": ["restaurant", "pizza", "sushi", "brasserie"],
"locations": ["Toronto, ON", "Montreal, QC", "Vancouver, BC"],
"max_results_per_query": 100,
"enrichment_tier": "premium",
"exclude_chains": true
}

Locations take City, PROV (2-letter province code), a neighbourhood, or a postal FSA (e.g. M5V). Up to 10 search terms and 25 locations per run (max 50 combinations).

Output

Sample output: ./.actor/sample-output.json - copy-paste-ready preview of real-looking records.

First record inline:

{
"place_id": "ChIJpTvG15DL1IkRd8S0KlBVNTI",
"name": "Maple & Birch Kitchen",
"category": "Canadian restaurant",
"vertical": "restaurants_ca",
"service_line": "full_service_restaurant",
"address": {
"street": "412 Queen St W",
"city": "Toronto",
"state": "ON",
"zip": "M5V 2A8",
"country": "CA",
"lat": 43.6487,
"lng": -79.3973
},
"phone": "(416) 555-0142",
"phone_e164": "+14165550142",
"website": "https://mapleandbirch.ca/",
"rating": 4.7,
"reviews_count": 612,
"confidence_score": 0.74,
"enrichment": {
"tier": "premium",
"emails": ["info@mapleandbirch.ca", "events@mapleandbirch.ca"],
"tech_stack": ["touchbistro", "opentable", "skipthedishes", "ritual", "wordpress"]
}
}

Each item is one restaurant lead. See the Detailed dataset view for every field, or the Overview view for the columns most outbound teams use.

Pricing - Pay Per Event

EventPriceWhen charged
Base record$0.005Always, per emitted record
Email enrichment+ $0.005When at least one email is found
Premium signals+ $0.010When POS / payment / ordering / delivery / reservation platform detected
Scheduled delta run$0.05Once per scheduled run in monitor mode (emits only new/changed restaurants)

Effective price per record: $0.005 base / $0.010 with email / $0.020 fully enriched. You only pay for events that actually fire - a base-tier run of 1,000 restaurants is $5; the same run fully enriched with POS/delivery detection is about $20.

Build a growing, de-duplicated database (accumulate mode)

Set the collection input to a name (e.g. toronto-db) to accumulate leads into one persistent, de-duplicated dataset across many runs:

  • The actor skips restaurants already in that collection (deduped by Google place ID, before enrichment - so you never pay to re-scrape a place you already have) and appends only new leads to a named dataset of the same name.
  • Re-run with the same collection across different cities and search terms (or on a schedule) and the database keeps growing - no duplicates, and you only pay per-record for net-new leads.
  • Leave collection blank for a normal one-off run.

This is the right way to build a large lead database: rotate inputs across metros/terms under one shared collection name, instead of re-running the same input (which just returns the same places). Accumulate mode adds a small per-run surcharge.

Coverage: provinces and major metros

  • ON Toronto, Ottawa, Mississauga, Hamilton, London, Brampton, Kitchener, Windsor, Markham, Vaughan
  • QC Montreal, Quebec City, Laval, Gatineau, Longueuil, Sherbrooke, Trois-Rivieres
  • BC Vancouver, Surrey, Burnaby, Richmond, Victoria, Kelowna
  • AB Calgary, Edmonton, Red Deer, Lethbridge
  • MB Winnipeg SK Saskatoon, Regina NS Halifax NB Moncton, Fredericton, Saint John
  • NL St. John's PE Charlottetown NT Yellowknife NU Iqaluit YT Whitehorse

Restaurant types covered

full_service_restaurant | fast_casual | qsr | cafe_bakery | bar_brewery | pizzeria | food_truck | ghost_kitchen

Platforms detected

POS: Toast, Square, Clover, Lightspeed (Montreal), TouchBistro (Toronto), Revel, Aloha (NCR), Micros (Oracle Simphony), Upserve, Tabit, Lavu, plus Canadian systems Maitre'D (Posera), Veloce/PayFacto, and Squirrel Systems.

Payments: Moneris (the dominant Canadian processor, an RBC/BMO joint venture), Global Payments Canada, Stripe, PayPal - a strong buying signal for payment sales teams.

Delivery / ordering: SkipTheDishes (the dominant Canadian aggregator), Ritual, Fantuan, UEAT (Quebec), DoorDash, Uber Eats, Grubhub, ChowNow, BentoBox, Olo, Popmenu, Smooth Commerce, Incentivio.

Reservations: OpenTable, Resy, Tock, Libro, SevenRooms, Yelp Reservations.

Website builders: WordPress, Shopify, Wix, Squarespace, Weebly, GoDaddy, Duda - a restaurant on a generic site builder is a prime target for website / all-in-one sales.

Email marketing: Mailchimp, Klaviyo, Constant Contact, ActiveCampaign.

Analytics / social: Google Tag Manager, Facebook Pixel, Instagram embed.

How to read the tech detections (important)

Treat tech_stack as a list of confirmed positives, not a full inventory:

  • A platform that is listed was fingerprinted on the site - reliable.
  • A platform that is not listed means not detected, which is not the same as "not used". Many "Order Online" / "Reserve" buttons are JavaScript widgets that render after the page loads, so they can be invisible to HTML scraping; niche platforms may not be fingerprinted yet; and some restaurants have no website or a social-only presence.

For whether a restaurant offers delivery, takeout, dine-in, curbside, or reservations at all, use google_signals - these flags come from the Google Maps listing itself (not the website), so a false is Google's own answer and a missing key means Google did not report it (unknown, not false).

Combine the two: google_signals.delivery = true with no delivery platform in tech_stack is a restaurant that delivers but whose platform we could not fingerprint - usually your best "investigate / likely greenfield" segment. google_signals.delivery = false is a genuine "does not offer delivery".

FAQ

Q: Is this legal? A: Yes. Data is sourced from publicly listed Google Maps business profiles and the restaurants' own public websites. No login walls bypassed; no private data scraped. You are responsible for CASL (Canada's Anti-Spam Legislation) and applicable provincial privacy law (PIPEDA, Quebec Law 25) compliance when contacting leads.

Q: Does it handle Quebec French listings? A: Yes. Service-line classification includes French category needles (brasserie, boulangerie, rotisserie, casse-croute, poutine, etc.), and detected French-language service is surfaced in enrichment.languages_offered.

Q: How are Canadian addresses normalized? A: Country is set to CA, the province is canonicalized to a 2-letter code (from an English or French name, or inferred from the postal code), and the postal code is tidied to A1A 1A1.

Q: Why might a run return only a few records? A: The most common cause is the Apify free plan's monthly platform-credit ceiling, after which the actor soft-fails into a clearly-labeled demo mode with sample records and an upgrade message. Upgrade to Apify Starter ($49/mo) to remove the ceiling.

Q: How do I find restaurants NOT using a specific POS? A: Filter the dataset where enrichment.tech_stack does not contain the platform identifier (e.g. exclude toast, lightspeed, touchbistro).

Support

Changelog

See ./CHANGELOG.md.

Found this useful?

If this actor saved you time or money, please leave a quick review on the Apify Store: https://apify.com/seibs.co/restaurant-lead-finder-canada#reviews