# Yellow Pages Canada Business Leads Scraper (`scrapers_lat/yellowpages-canada-scraper`) Actor

Scrape Canadian business listings from Yellow Pages by keyword and city or province. Get business name, phone, website, full address and category as clean leads. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/yellowpages-canada-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $17.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Yellow Pages Canada Business Leads Scraper

> Turn Canada's national business directory into clean, structured leads. Search by keyword and city or province and get business name, phone, website, address and category, ready for your CRM or outreach.

**📥 [Input](https://apify.com/scrapers_lat/yellowpages-canada-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/yellowpages-canada-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/yellowpages-canada-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples)**


![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Leads](https://img.shields.io/badge/Data-Business%20leads-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>Phone & website</strong><br>direct contact details</td>
<td align="center"><strong>Address & category</strong><br>for every listing</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
</tr></table>

<br>

### What you get

Each record is one Canadian business, ready for a spreadsheet, a CRM import or an outreach campaign:

- **businessName**: the company or trade name
- **phone**: the listed phone number
- **website**: the business website, where the business publishes one
- **address**: full street address with city, province and postal code
- **category**: the main trade or category the business is listed under
- **url**: a direct link to the full listing
- **observedAt**: when the record was collected

### Who is it for

| Use case | Who benefits |
|---|---|
| Sales prospecting | Sales teams building targeted call lists across Canada |
| Lead generation | Agencies selling to local businesses by city and category |
| Market research | Analysts mapping how many providers serve a market |
| Local outreach | Marketers running regional campaigns by trade |

### How to use it

1. Enter a **keyword or category** (for example `restaurant`, `dentist` or `plumber`).
2. Enter a **city or province** (for example `Toronto ON`, `Vancouver BC` or `Montreal QC`).
3. Set **Max Items** and run. Export as JSON, CSV or Excel, or pull the results through the Apify API.

### Frequently Asked Questions

**Which fields matter most for outreach?**
Phone is the direct contact point for every listing. Website helps you qualify each lead, address lets you target by area, and category lets you segment by trade.

**Does every business have a website?**
No. Business name, phone, address and category are available for almost every listing. Website is included whenever the business publishes one, so coverage varies by category and area.

**Can I collect more than one page of results?**
Yes. Set Max Items higher and the scraper keeps paging through additional businesses for that keyword and location.

**How fresh is the data?**
Every record is read live at run time, so it reflects the directory at the moment of the run (see observedAt).

<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [Plumber leads in Toronto ON, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-plumber-toronto): Scrape plumber business leads in Toronto ON, Canada with phone, website and address for B2B outreach.
- [Dentist leads in Montreal QC, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-dentist-montreal): Scrape dentist business leads in Montreal QC, Canada with phone, website and address for B2B outreach.
- [Electrician leads in Vancouver BC, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-electrician-vancouver): Scrape electrician business leads in Vancouver BC, Canada with phone, website and address for B2B outreach.
- [Lawyer leads in Calgary AB, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-lawyer-calgary): Scrape lawyer business leads in Calgary AB, Canada with phone, website and address for B2B outreach.
- [Accountant leads in Ottawa ON, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-accountant-ottawa): Scrape accountant business leads in Ottawa ON, Canada with phone, website and address for B2B outreach.
- [Roofing leads in Edmonton AB, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-roofing-edmonton): Scrape roofing business leads in Edmonton AB, Canada with phone, website and address for B2B outreach.
- [Restaurant leads in Winnipeg MB, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-restaurant-winnipeg): Scrape restaurant business leads in Winnipeg MB, Canada with phone, website and address for B2B outreach.
- [Mechanic leads in Quebec City QC, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-mechanic-quebec): Scrape mechanic business leads in Quebec City QC, Canada with phone, website and address for B2B outreach.
- [Hair Salon leads in Halifax NS, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-hair-salon-halifax): Scrape hair salon business leads in Halifax NS, Canada with phone, website and address for B2B outreach.
- [Real Estate Agent leads in Mississauga ON, Canada](https://apify.com/scrapers_lat/yellowpages-canada-scraper/examples/ypca-real-estate-agent-mississauga): Scrape real estate agent business leads in Mississauga ON, Canada with phone, website and address for B2B outreach.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

- [Gelbe Seiten Germany Business Leads Scraper](https://apify.com/scrapers_lat/gelbeseiten-germany-scraper)
- [PagineGialle Italy Business Leads Scraper](https://apify.com/scrapers_lat/paginegialle-italy-scraper)
- [Google Maps Business Scraper](https://apify.com/scrapers_lat/google-maps-scraper)

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for public platforms: finance, news, real estate, jobs, e-commerce and government data. Browse the full catalog or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with Yellow Pages Canada. It only accesses publicly available business listings. Use the results in accordance with the source's terms and applicable law.

# Actor input Schema

## `keyword` (type: `string`):

What to search for, for example 'restaurant', 'dentist', 'plumber', 'lawyer' or 'hair salon'.
## `city` (type: `string`):

Where to search, for example 'Toronto ON', 'Vancouver BC', 'Montreal QC' or 'Calgary AB'.
## `maxItems` (type: `integer`):

Maximum number of businesses to collect. Optional.
## `proxyConfiguration` (type: `object`):

Proxy settings. A Canadian residential proxy is used by default for reliable access.

## Actor input object example

```json
{
  "keyword": "restaurant",
  "city": "Toronto ON",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CA"
  }
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "restaurant",
    "city": "Toronto ON",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "CA"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/yellowpages-canada-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keyword": "restaurant",
    "city": "Toronto ON",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "CA",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/yellowpages-canada-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "restaurant",
  "city": "Toronto ON",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CA"
  }
}' |
apify call scrapers_lat/yellowpages-canada-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/yellowpages-canada-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yellow Pages Canada Business Leads Scraper",
        "description": "Scrape Canadian business listings from Yellow Pages by keyword and city or province. Get business name, phone, website, full address and category as clean leads. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "VgP7V3MgjZgpAOrc1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~yellowpages-canada-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-yellowpages-canada-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~yellowpages-canada-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-yellowpages-canada-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~yellowpages-canada-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-yellowpages-canada-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keyword": {
                        "title": "Keyword or category",
                        "type": "string",
                        "description": "What to search for, for example 'restaurant', 'dentist', 'plumber', 'lawyer' or 'hair salon'."
                    },
                    "city": {
                        "title": "City or province",
                        "type": "string",
                        "description": "Where to search, for example 'Toronto ON', 'Vancouver BC', 'Montreal QC' or 'Calgary AB'."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of businesses to collect. Optional."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. A Canadian residential proxy is used by default for reliable access."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
