YellowPages Canada Scraper - $5/1k - Business Leads
Pricing
from $5.00 / 1,000 business scrapeds
YellowPages Canada Scraper - $5/1k - Business Leads
Scrape Canadian business listings from YellowPages.ca by category and city. Returns name, phone, split street/city/province/postal code, latitude & longitude, website, categories, star rating and review count β one clean record per business. Pay only per business delivered.
Pricing
from $5.00 / 1,000 business scrapeds
Rating
0.0
(0)
Developer
Mamies Tech
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
YellowPages Canada Scraper β Business Leads with Full Address & Website π¨π¦
Turn any Canadian business category into a clean lead list. Pick a category and a city β "dentists in Toronto, ON", "plumbers in Calgary, AB" β and get one structured record per business, with phone, full mailing address, map coordinates, website, ratings, and categories.
Pay only per business delivered. No subscriptions, no per-page fees.
π Why this scraper?
- β
Address split into real columns β
street,city,province, andpostal_codeas separate fields, not one jammed-together string. Import straight into a CRM, filter by territory, or run a mail merge without cleanup. - β Latitude & longitude on every located listing β map your leads, sort by distance, or plan routes without a separate geocoding step
- β Real website URLs β YellowPages.ca hides business sites behind a click-tracking redirect; every link is unwrapped to the business's actual domain, ready to enrich further
- β Ratings & reviews β star rating and review count for every listing that has them
- β Never pay twice for the same business β every record is de-duplicated across the whole run
- β
Ads clearly flagged β sponsored listings are marked
is_adso you can keep or drop them - β No empty rows β listings with no phone, address or website are dropped before you're charged, so you never pay for a lead you can't contact
- β
Bilingual-friendly β accented cities and categories work (
MontrΓ©al,QuΓ©bec,cafΓ©), and French province names are understood - β Emails & social profiles β optional paid add-on that pulls email addresses, social media profiles, and contact pages from each business's own website
- β Clean export β JSON, CSV, Excel, XML, or HTML
Pairs perfectly with our Website Contact Scraper: already have a domain list? Feed it straight in there instead.
π Output example
One record per business:
{"name": "Eglinton West Dental","phone": "647-484-2557","full_address": "1114 Eglinton Ave W, Toronto, ON M6C 2E2","street": "1114 Eglinton Ave W","city": "Toronto","province": "ON","postal_code": "M6C 2E2","latitude": 43.699623,"longitude": -79.431951,"website": "http://eglintonwestdental.ca/","categories": ["Dentists", "Teeth Whitening Services"],"star_rating": 5.0,"review_count": 2,"snippet": "Beautiful smiles are made here! We offer preventitive, restorative and cosmetic dentistry.","yp_url": "https://www.yellowpages.ca/bus/Ontario/Toronto/Eglinton-West-Dental/100061167.html","image": "https://ssmscdn.yp.ca/image/resize/5e601910-71e7-4f05-b1aa-94e3a9e9f077/yp-serp-thumbnail/1.jpg","is_ad": false}
With contact enrichment enabled, each record also carries emails, all 10 social platform fields, and contact_page:
{"name": "Yonge and Bloor Dental Care","phone": "416-434-4571","full_address": "2 Bloor St W #1904, Toronto, ON M4W 3E2","website": "https://yongeandbloordentalcare.com/","emails": ["info@yongeandbloordentalcare.com"],"instagram": "https://www.instagram.com/yongeandbloordental","facebook": null,"linkedin": null,"contact_page": "https://yongeandbloordentalcare.com/contact-us/"}
Trimmed for readability β every record carries all the fields listed below, and contact-enriched records always include all 10 social platform fields (facebook, instagram, linkedin, twitter, youtube, tiktok, pinterest, github, telegram, whatsapp); platforms the business doesn't have come back as null.
Every field is returned on every record β a business that doesn't publish something gets null (or []) rather than a missing key, so your columns stay stable across runs.
π Data fields extracted
| Field | Description |
|---|---|
| name | Business name |
| phone | Phone number, as displayed β e.g. 416-434-4571 |
| full_address | Street, city, province and postal code joined into one line |
| street / city / province / postal_code | The same address as four separate columns |
| latitude / longitude | Map coordinates, where the listing is geocoded |
| website | The business's own site, with YellowPages.ca's tracking redirect already unwrapped. Listing links that aren't a real website come back as null rather than a misleading URL. |
| categories | Every category the business is listed under |
| star_rating | Average star rating, 1β5 in half steps |
| review_count | Number of reviews behind that rating |
| snippet | A short business blurb or tagline |
| yp_url | The listing this record came from |
| image | Listing photo or logo, where the business has uploaded one |
| is_ad | true for sponsored placements |
| emails | Contact emails found on the business website (when contact enrichment is enabled) |
| facebook β¦ whatsapp | Social profile links β Facebook, Instagram, LinkedIn, Twitter/X, YouTube, TikTok, Pinterest, GitHub, Telegram, WhatsApp (when contact enrichment is enabled) |
| contact_page | URL of the website's contact page (when contact enrichment is enabled) |
About emails & socials: Contacts are extracted by visiting each business's website, so they're available only for businesses that have a website β 70% of listings across a 272-record test run. Even then, not every site publishes an email; many use a contact form only. On that run, 35% of all records yielded at least one email (49% of the ones that had a website to crawl), 43% yielded at least one social profile, and 33% a contact page. Expect contacts on a meaningful share of results, not all of them. Enable Find email addresses & social profiles in the input to turn this on.
Download the full dataset as JSON, CSV, Excel, XML, or HTML from the Output tab.
β¬οΈ Input
Three fields β fill them in and run. No configuration, no proxy setup, nothing to tune.
| Parameter | Required | Description |
|---|---|---|
| searchTerm | Yes | The business category, as you'd type it on the site β dentists, plumbers, roofing contractors |
| location | Yes | A Canadian city β Toronto, ON, Vancouver, British Columbia, or just Calgary. The province is optional, but worth adding for cities that share a name. |
| maxResults | No | How many businesses to return (default 10). Listings run deep, so this is what ends the run β raise it as high as you need. |
| extractEmails | No | Paid add-on. Visit each business website to extract contact emails, social profiles, and the contact page (adds the emails, social, and contact_page fields). Every result in the run is charged at the higher add-on rate. |
Tip: Start with a small maxResults to preview the data for a category, then raise it once you're happy with what comes back.
π― Use cases
- Local lead generation β build a targeted prospect list for any trade in any Canadian city
- Territory planning β filter by postal code, city or province to carve up sales regions
- Map & route planning β every located listing ships with coordinates, so no geocoding step
- Market research β size up how many competitors operate in a given area, and how they're rated
- CRM enrichment β fill in phone, address, and website for businesses you already track
- Directory building β assemble niche listings for a site or newsletter
β FAQ
How is this billed? You pay a flat rate per business delivered. Runs with Find email addresses & social profiles switched on are charged at a higher rate β applied to every result in the run, whether or not that particular business turned out to publish an email. Duplicates are removed before billing, so the same business is never charged twice in a run. You can set a maximum spend per run β when it's reached, the run finishes cleanly and you keep everything scraped up to that point.
How many results can I get?
Listings for a popular category in a large city run into the thousands β dentists in Toronto alone returns over 4,000. Set maxResults to whatever you need. Smaller cities and narrower categories will naturally have fewer.
Do I need to include the province?
No. YellowPages.ca resolves a bare city name, so Toronto works as well as Toronto, ON. Add the province when a city name is ambiguous β London, ON is a good habit.
Why are some fields empty on a few records? Not every business publishes everything. On live test runs, name, phone, categories and listing URL came back on 100% of records. Address completeness varies by trade: for storefront categories like dentists and restaurants, street, city and postal code came back on ~100%, and coordinates on ~98%. For mobile trades it's lower by nature β about two-thirds of Calgary plumbers publish a street address at all, because they're service-area businesses that work out of a van rather than a shopfront. They still carry a phone, so they're delivered as leads. Ratings appear on roughly 30% of listings (70% for restaurants), and photos on 20β30%.
Why don't all results have emails? Emails come from business websites. Listings without a website, or whose website doesn't publish an email, won't have one β on a 272-record test run, 70% of listings had a website and 35% of all records ended up with at least one email. Email coverage naturally varies by area and industry.
Do you scrape the French site too?
Accented input works throughout β MontrΓ©al, QuΓ©bec, and French province names like Nouveau-Brunswick all resolve correctly. Results come from YellowPages.ca, whose listings cover the whole country.
What export formats are supported? JSON, CSV, Excel, XML, and HTML β from the Output tab or the Apify API.
Are duplicates removed? Yes. Listings repeat across pages β YellowPages.ca reshuffles results between requests, and the same business can appear more than once in a single page's raw results. Every record is de-duplicated by its listing ID before it reaches you, so you never receive β or pay for β the same business twice. Note that genuinely separate branches of a chain are different businesses and are returned separately.
Do I need proxies? No β proxies are managed automatically.
Can I automate it? Yes β schedule it, chain it with other actors, or connect Make, n8n, Zapier, Google Sheets, and webhooks via Apify integrations.
Is this legal? The actor only reads publicly available business listings β information companies publish about themselves to be found. You are responsible for using the data lawfully (e.g. PIPEDA, CASL, GDPR) in your outreach. CASL in particular is stricter than US anti-spam law β Canadian commercial email generally requires consent, so review your obligations before running outreach campaigns.
π‘ Tips
- Proxies are managed automatically β no proxy setup or configuration needed.
- Start small: preview a category with a low maxResults, then scale up.
- Contact enrichment costs more per result β use it when you need emails, social profiles, or contact pages.
- Already have a list of domains? Feed it straight into our Website Contact Scraper instead.
- Scraping the US too? Our YellowPages US Scraper does the same job for yellowpages.com.
Unofficial scraper β not affiliated with, endorsed by, or sponsored by Yellow Pages Canada / Yellow Pages Limited.