Yellow Pages APIyellowpages.ca ↗
Search Canadian businesses by keyword and location, retrieve contact details, hours, reviews, and website leads from Yellow Pages Canada via a structured API.
What is the Yellow Pages API?
This API exposes 4 endpoints covering Yellow Pages Canada (yellowpages.ca), letting you search businesses by keyword and location, pull full business profiles, read customer reviews, and filter leads by website presence. The search_businesses endpoint returns up to 35 results per page including phone, address, rating, review count, and categories, with pagination supported across the full result set.
curl -X GET 'https://api.parse.bot/scraper/8c69f222-c3d4-4d68-8ed4-f0946a89d06d/search_businesses?page=1&keyword=restaurants&location=Toronto+ON' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace yellowpages-ca-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.yellow_pages_canada_api import YellowPages, Business, BusinessSummary, Review
yp = YellowPages()
# Search for restaurants in Toronto
for listing in yp.businesses.search(keyword="restaurants", location="Toronto ON", limit=5):
print(listing.name, listing.phone, listing.address, listing.rating, listing.review_count)
# Drill into full details for the first result
full = listing.details()
print(full.name, full.address, full.phone, full.website_url)
print(full.hours)
print(full.rating_summary.overall_rating, full.rating_summary.review_count_text)
# Get reviews for this business
for review in listing.reviews.list(limit=3):
print(review.author, review.date, review.rating, review.body)
break
# Find businesses with websites
for lead in yp.businesses.leads_with_website(keyword="plumbers", location="Calgary AB", limit=10):
print(lead.name, lead.website_url, lead.phone)
Full-text search across Yellow Pages Canada by keyword and location. Returns paginated business listings (up to 35 per page) with contact info, ratings, and categories. Pagination advances via the page parameter. Each result includes a path suitable for drilling into details or reviews.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| keywordrequired | string | Business keyword to search for (e.g. 'restaurants', 'dentists', 'plumbers'). |
| locationrequired | string | Location to search in, formatted as city and province code (e.g. 'Toronto ON', 'Vancouver BC', 'Calgary AB'). |
{
"type": "object",
"fields": {
"page": "integer current page number",
"results": "array of business summary objects with name, path, phone, address, website_url, rating, review_count, and categories",
"total_pages": "integer total number of pages available",
"total_results": "integer total number of matching businesses"
},
"sample": {
"data": {
"page": 1,
"results": [
{
"name": "La Sala Restaurant",
"path": "/bus/Ontario/Toronto/La-Sala-Restaurant/2088985.html?what=restaurants&where=Toronto+ON&useContext=true",
"phone": "+1 (555) 012-3456",
"rating": 4,
"address": "123 Main St, Toronto, ON M4L 1J1",
"categories": [
"Italian and Mediterranean cuisine",
"Restaurants"
],
"website_url": "https://www.lasalaristorante.com/",
"review_count": 2
}
],
"total_pages": 301,
"total_results": 10531
},
"status": "success"
}
}About the Yellow Pages API
Search and Discovery
The search_businesses endpoint accepts a keyword (e.g. 'dentists', 'plumbers') and a location formatted as city and province code (e.g. 'Toronto ON', 'Vancouver BC'). Results include name, path, phone, address, website_url, rating, review_count, and categories for each business. The total_results and total_pages fields let you paginate through the full listing using the page parameter, with up to 35 businesses per page.
Business Profiles
get_business_details takes the path field returned by search_businesses and returns a full profile: address, phone, website_url, hours (an object keyed by day name), photos (array of URLs), social_links (array of objects with title and url), and a details object with categorized sections such as Products and Services, Brands Carried, and Languages Spoken. The rating_summary field includes overall_rating, review_count_text, and sub_ratings.
Reviews
get_business_reviews retrieves written customer reviews for a business using the same path input. Each review object contains author, date, body, and rating. Note that businesses with only numeric ratings and no written reviews will return an empty reviews array alongside a total of zero.
Lead Filtering
get_all_business_leads_with_website runs a first-page search for a keyword and location, then filters results to only businesses that have a website_url populated. It returns a leads array with the same fields as search_businesses results, plus a total_on_page count. This is useful for building outreach lists where having a web presence is a qualifying criterion.
The Yellow Pages API is a managed, monitored endpoint for yellowpages.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yellowpages.ca changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official yellowpages.ca API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Canadian local business directory filtered by category and city using
search_businesseskeyword and location params. - Enrich a CRM with phone numbers, addresses, and website URLs pulled from
get_business_details. - Aggregate customer review sentiment by collecting
bodyandratingfields across multiple businesses viaget_business_reviews. - Generate sales lead lists of businesses with websites using
get_all_business_leads_with_websitefor a target keyword and province. - Monitor business hours and contact info changes over time by periodically calling
get_business_detailsfor tracked paths. - Identify businesses in a given Canadian city that carry specific brands or speak particular languages using the
detailssections fromget_business_details. - Compare ratings and review counts across competing local businesses in a metro area using
search_businessesresults.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Yellow Pages Canada offer an official developer API?+
What does `get_business_details` return beyond what `search_businesses` provides?+
search_businesses returns a summary: name, phone, address, website_url, rating, review_count, and categories. get_business_details adds operating hours keyed by day, photo URLs, social links with titles, and a structured details object covering sections like Products and Services, Brands Carried, and Languages Spoken, along with sub-ratings inside rating_summary.Does `get_business_reviews` return all reviews or just a subset?+
total of zero. There is no pagination parameter on this endpoint, so very large review sets may not be fully returned.Does the API cover businesses across all Canadian provinces?+
location parameter accepts any city and province code combination supported by yellowpages.ca, so coverage spans the provinces represented on that directory. However, the get_all_business_leads_with_website endpoint only queries the first page of results for a given keyword and location — it does not paginate. For multi-page lead extraction, you can fork the API on Parse and revise it to paginate through all result pages.