Canada411 Scraper avatar

Canada411 Scraper

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Canada411 Scraper

Canada411 Scraper

Scrape Canada411.ca listings: name, phone, street, city, province, postal code, and map coordinates. Name + city, reverse phone, street address, postal code, or canada411.ca URLs in. 100 rows per request, pure HTTP, no browser. JSON or CSV out. $1.00/1k listings.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share

Canada411 Scraper logo

Turn a Canada411.ca search into structured Canadian contact rows: name, phone, street, city, province, postal code, map coordinates, and profile link.

Name + city, reverse phone, street address, postal code, or a canada411.ca URL. JSON or CSV out.

Why Use This Scraper?

  • 100 listings per request, so a 1,600-result city search finishes in seconds
  • Latitude and longitude on every row, read from the page's own map data
  • Address already split into street, city, province, postal code
  • Four lookup types in one run: name + location, reverse phone, street address, postal code
  • Name ร— location lists cross-joined and de-duplicated automatically
  • HTTP only. No browser, no proxy needed for Canada411

Overview

Built for sales teams, skip tracers, researchers, and agencies who need Canadian white-pages rows from canada411.ca.

Every start type becomes one dataset row per listing. A name search, a reverse phone hit, a postal code sweep, and a /res/ profile URL all emit the same flat shape. Rows are de-duplicated across all searches by Canada411 listing id.

Supported Inputs

Names and locations

FieldExample
names["Smith"], ["John Smith", "Tremblay"], ["Tim Hortons"]
locations["Toronto, ON"], ["Montreal"], ["Quebec"]

Every name is searched in every location. ["Smith","Tremblay"] ร— ["Toronto","Montreal"] is four searches. Canada411 refuses a name search with no location ("Too many listings"), so at least one location is required.

Reverse lookups

FieldExampleWhat comes back
phoneNumbers["416-243-0072"]The residential listing on that number
addresses["48 Howbert, North York, ON"]Everyone listed at that street address
postalCodes["M9N 3L3"]Every listing in that postal code

URL types

URL typePatternExample
Search results/search/si/{page}/{name}/{where}/https://www.canada411.ca/search/si/1/Smith/Toronto/
Query-string search/search/?stype=โ€ฆhttps://www.canada411.ca/search/?stype=si&what=Smith&where=Toronto
Person profile/res/{phone}/{name}/{id}.htmlhttps://www.canada411.ca/res/4169670873/Mark-Smith/461154423.html

Search URLs are paginated automatically. fr.canada411.ca links work too.

Unsupported: yellowpages.ca business pages. Canada411 hands business numbers to Yellow Pages; those redirects are logged and skipped.

Use Cases

AudienceWhat they take from a run
Sales and outreachPhone + full address per household, by city or province
Skip tracing and verificationReverse phone and reverse address in bulk
Direct mailPostal-code sweeps with street-level addresses
ResearchersSurname distribution by city with coordinates for mapping
AgenciesCross-joined name ร— city lists in one dataset

How It Works

  1. Expand names ร— locations, phone numbers, addresses, postal codes, and URLs into search jobs.
  2. Fetch page 1 of each search with pgLen=100 and read the total result count.
  3. Fan out the remaining pages in parallel, stopping at maxItems or maxPages.
  4. Parse each listing row and attach coordinates from the page's map data.
  5. Split the address into street, city, province, postal code.
  6. De-duplicate by listing id and push one row per person.

How the Canada411 scraper turns a search into listing rows

Input Configuration

FieldTypeRequiredNotes
namesarrayone of the start typesPerson or business names, searched in every location
locationsarraywith namesCity, City, PV, or province
phoneNumbersarrayone of the start typesCanadian numbers, any format
addressesarrayone of the start typesstreet, city, province
postalCodesarrayone of the start typesSix-character codes
startUrlsarrayone of the start typescanada411.ca search or /res/ URLs
maxItemsintegernoDefault 50. Free users capped at 50.
maxPagesintegernoDefault 20 (2,000 rows per search).
maxConcurrencyintegernoDefault 5.
proxyobjectnoOptional. Default is no Apify proxy.

Example input

{
"names": ["Smith"],
"locations": ["Toronto, ON"],
"phoneNumbers": ["416-243-0072"],
"postalCodes": ["M9N 3L3"],
"maxItems": 200
}

Output Overview

One flat row per listing. Contact and address fields sit at the top level. searchType and searchTerm tell you which input produced the row.

Output Samples

Search: Smith in Toronto, ON.

{
"listingId": "462614471",
"type": "person",
"name": "GLORIA SMITH SMITH",
"phone": "4162430072",
"phoneFormatted": "(416) 243-0072",
"address": "48 Howbert North York ON M9N 3L3",
"street": "48 Howbert",
"city": "North York",
"province": "ON",
"postalCode": "M9N 3L3",
"latitude": 43.711978912353516,
"longitude": -79.52639770507812,
"profileUrl": "https://www.canada411.ca/res/4162430072/GLORIA+SMITH-SMITH/462614471.html",
"searchType": "name",
"searchTerm": "Smith in Toronto, ON",
"scrapedAt": "2026-09-14T21:08:38.326Z"
}

A reverse address lookup (same run):

{
"listingId": "461575075",
"name": "Lucia Dalla Nora",
"phone": "4162443330",
"street": "17 Howbert",
"city": "North York",
"province": "ON",
"postalCode": "M9N 3L1",
"searchType": "address",
"searchTerm": "48 Howbert, North York, ON"
}

Key Output Fields

Identity: listingId, type (person or business), name, profileUrl

Contact: phone (digits only), phoneFormatted

Place: address, street, city, province, postalCode, latitude, longitude

Provenance: searchType (name, phone, address, postalCode, url), searchTerm, scrapedAt

Canada411 lists a landline per household, so phone is present on every row. street is empty when the directory only publishes the city (about 3% of rows in a Toronto sample).

Pricing

EventWhenRate
Actor startOnce per run, per GB of memory$0.005
ListingEach unique listing in the dataset$0.001 ($1.00 / 1k)
Contact phoneRow has a phone$0.002
Contact emailRow has an email$0.05

Phone and email are billed only when that field is present. Canada411 is a phone book โ€” email almost never appears.

What makes this richer than the competition

CapabilityTypical Store actorsThis actor
Rows per request15 to 20100
CoordinatesNoneLatitude and longitude on every row
AddressOne stringStreet, city, province, postal code
Lookup typesName + cityName + city, reverse phone, address, postal code, URLs
ProvenanceNonesearchType and searchTerm per row

FAQ

Does it return businesses? Canada411 lists some businesses in its white pages (a search for "Tim Hortons" in Toronto returns 81 rows). Yellow Pages business profiles are a different site and are not scraped.

Why does a name with no location return nothing? Canada411 refuses it with "Too many listings". Add a city or province.

Why did my reverse phone lookup return zero rows? The number is a business line. Canada411 redirects those to yellowpages.ca, which this actor logs and skips.

Is the email or age included? No. Canada411 publishes name, phone, and address only.

Do I need a proxy? No. Canada411 serves plain HTML with no bot challenge.

French results? Paste an fr.canada411.ca URL into startUrls. Names and addresses are the same; only the page chrome changes.

Support

Additional Services

Bulk province sweeps, scheduled refreshes, or a private API wrapper: muhamed.didovic@gmail.com

Explore More Scrapers

Directory cousins: Yellow Pages US Scraper and PagesJaunes Scraper. More actors on memo23 and didovic.

๐Ÿค– For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/canada411-scraper).

Purpose: Extract Canada411.ca residential listings (name, phone, split address, coordinates) by name + location, reverse phone, street address, postal code, or URL.

Minimal input:

{
"names": ["Smith"],
"locations": ["Toronto, ON"],
"maxItems": 10
}

Output: one dataset row per listing โ€” listingId, type, name, phone, phoneFormatted, address, street, city, province, postalCode, latitude, longitude, profileUrl, searchType, searchTerm, scrapedAt.

Behaviors an agent should know:

  • Always set maxItems. Free users are capped at 50.
  • names needs at least one entry in locations. A name with no location is skipped with a warning.
  • phoneNumbers, addresses, postalCodes, and startUrls each work on their own.
  • Business phone numbers return zero rows (Canada411 redirects them to yellowpages.ca).
  • Each listing is $0.001. A phone on the row is $0.002. An email is $0.05. Start is $0.005 per GB.
  • Canada411.ca only. No email, no age, no relatives.

โš ๏ธ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Yellow Pages Digital & Media Solutions Limited or Canada411. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Canada411 listing data โ€” no authenticated endpoints, paid features, or content behind a login wall. Users are responsible for ensuring their use complies with canada411.ca Terms of Service, PIPEDA and provincial privacy law, CASL if they send outreach, and any contractual obligations of their own organization.

SEO Keywords

canada411 scraper, canada411.ca scraper, scrape canada411, Canada white pages scraper, Canadian phone directory scraper, reverse phone lookup Canada, reverse address lookup Canada, postal code lookup scraper, Canada people search scraper, Canadian phone number scraper, Apify canada411, Canada residential listings data, skip tracing Canada, Canada 411 API