Yellow Pages Scraper USA — Business Leads
Pricing
from $8.96 / 1,000 business listing extracteds
Yellow Pages Scraper USA — Business Leads
Scrape YellowPages.com US business listings by keyword, city/ZIP, or direct URL. Extract business name, phone, website, address, rating, hours, years in business, BBB rating, and customer reviews for local lead generation.
Pricing
from $8.96 / 1,000 business listing extracteds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Yellow Pages Scraper USA — Business Leads & Reviews
Yellow Pages Scraper USA (muhammadafzal/yellow-pages-us-scraper) extracts structured US business listings and customer reviews from yellowpages.com into JSON, CSV, or Excel at $4.00–$5.00 per 1,000 business records (plus $0.015068–$0.018836 per GB of Actor start memory). Search by keyword and US city/ZIP (searchTerms × locations), paste category or search URLs (startUrls), or extract individual /mip/ business profile pages with phone numbers, websites, emails, structured addresses, opening hours, ratings, BBB status, years in business, and optional customer reviews.
What does Yellow Pages Scraper USA extract?
Every business listing is normalized into a flat, schema-validated record containing 27 fields ready for CRM import, outbound sales enrichment, or local market analysis:
| Field | Type | Description |
|---|---|---|
name | string | Official business name on Yellow Pages |
phone | string | null | Primary US telephone number |
email | string | null | Contact email address (when published on the profile page) |
website | string | null | External business website URL |
address | object | { street, city, state, postalCode, country: "US" } |
addressFormatted | string | Single-line postal address ("50 Franklin St, Boston, MA, 02110") |
coordinates | object | { lat, lng } WGS84 geo coordinates |
categories | string[] | All assigned Yellow Pages business categories |
primaryCategory | string | null | Main business category |
services | string[] | Services and specialties listed on the profile |
paymentMethods | string[] | Accepted payment methods |
hours | object | null | Operating hours keyed by day or schedule |
rating | number | null | Average star rating (1.0–5.0) |
reviewCount | number | null | Total customer review count |
reviews | array | null | Array of { author, rating, date, text } when includeReviews: true |
socialLinks | object | { facebook, instagram, linkedin, twitter, youtube } |
logo | string | null | Business logo or thumbnail URL |
photos | string[] | Gallery image URLs |
claimed | boolean | Whether the owner has claimed the Yellow Pages listing |
bbbAccredited | boolean | Whether a Better Business Bureau badge is present |
yearsInBusiness | number | null | Years in operation reported on Yellow Pages |
description | string | null | Business description or review snippet |
tagline | string | null | Promotional callout or tagline |
isAd | boolean | true for paid placements, false for organic listings |
yellowPagesId | string | Unique numeric Yellow Pages listing ID (YPID) |
profileUrl | string | Canonical yellowpages.com/.../mip/... profile URL |
sourceUrl | string | Search, category, or profile URL crawled |
searchTerm | string | Search keyword used ("plumber") |
searchLocation | string | Search location used ("Boston, MA") |
scrapedAt | string | ISO 8601 UTC extraction timestamp |
Sample output record
{"name": "Roto-Rooter Plumbing & Water Cleanup","phone": "(857) 810-7698","email": null,"website": "https://www.rotorooter.com/boston/","address": {"street": "50 Franklin St","city": "Boston","state": "MA","postalCode": "02110","country": "US"},"addressFormatted": "50 Franklin St, Boston, MA, 02110","coordinates": {"lat": 42.35565,"lng": -71.0586},"categories": ["Plumbers","Plumbing-Drain & Sewer Cleaning","Water Heater Repair"],"primaryCategory": "Plumbers","services": [],"paymentMethods": ["financing available"],"hours": {"mon-sun": "Open 24 Hours"},"rating": 4.42,"reviewCount": 36,"reviews": null,"socialLinks": {"facebook": null,"instagram": null,"linkedin": "https://www.linkedin.com/company/roto-rooter","twitter": "https://twitter.com/rotorooter","youtube": "https://www.youtube.com/user/rotorootertv"},"logo": "https://i1.ypcdn.com/blob/94850e1522feb07bd424a37f4165194fe5f8b345_400x260_crop.jpg","photos": [],"claimed": false,"bbbAccredited": false,"yearsInBusiness": 91,"description": "When you need an emergency plumber near me in Boston or a drain cleaner, call Roto-Rooter Plumbing & Water Cleanup.","tagline": null,"isAd": false,"yellowPagesId": "451044375","profileUrl": "https://www.yellowpages.com/boston-ma/mip/roto-rooter-plumbing-water-cleanup-451044375","sourceUrl": "https://www.yellowpages.com/search?search_terms=plumber&geo_location_terms=Boston%2C+MA","searchLocation": "Boston, MA","searchTerm": "plumber","scrapedAt": "2026-10-27T06:00:00.000Z"}
How to scrape Yellow Pages US business listings
Input parameters
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
searchTerms | string[] | Prefill: ["plumber"] | Keywords or categories to search ("plumber", "dentist", "roofing"). Cross-joined with locations. |
locations | string[] | Prefill: ["Boston, MA"] | US cities ("City, ST") or 5-digit ZIP codes ("90210"). Cross-joined with searchTerms. |
startUrls | array | [] | Direct yellowpages.com search URLs, city-category URLs (/boston-ma/plumbers), or business profile URLs (/mip/...). |
sortBy | string | "default" | Sort order: "default" (relevance), "distance", "name", or "rating". |
includeReviews | boolean | false | Visit each business's /mip/ profile page to extract customer reviews and extended profile fields. |
maxReviewsPerBusiness | integer | 10 | Maximum customer reviews per business when includeReviews: true (0 = up to 2,000). |
maxResults | integer | Default 20 / Prefill 3 | Maximum total business records across the run (0 = up to 10,000). |
maxPagesPerSearch | integer | Default 3 / Prefill 1 | Maximum search result pages per query or URL (1–50, ~30 organic businesses per page). |
Call from Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("muhammadafzal/yellow-pages-us-scraper").call(run_input={"searchTerms": ["plumber", "electrician"],"locations": ["Boston, MA", "Austin, TX"],"sortBy": "rating","includeReviews": False,"maxResults": 60,"maxPagesPerSearch": 2,})for item in client.dataset(run.default_dataset_id).iterate_items():print(item["name"], item["phone"], item["website"], item["rating"])
Call from JavaScript / TypeScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/yellow-pages-us-scraper').call({searchTerms: ['dentist'],locations: ['Austin, TX'],maxResults: 30,includeReviews: true,maxReviewsPerBusiness: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Use it from an AI assistant (MCP)
Connect this Actor directly to Claude Desktop, Cursor, Windsurf, or any Model Context Protocol (MCP) client using the Apify MCP endpoint:
- MCP Server URL:
https://mcp.apify.com/?tools=muhammadafzal/yellow-pages-us-scraper - Pass
Authorization: Bearer <APIFY_TOKEN>in your MCP client headers to let AI assistants search US Yellow Pages listings, filter by rating or location, and enrich business profiles on demand.
When to use Yellow Pages Scraper USA (and when not to)
- Use this Actor when you need structured US business directory data from
yellowpages.com—including phone numbers, external websites, street addresses, categories, years in business, BBB badges, claimed status, and customer reviews—by keyword, city/ZIP, or direct URL. - Do not use this Actor when you need non-US Yellow Pages directories: use
yellow-pages-ca-scraperfor Canada (yellowpages.ca) oryellow-pages-au-scraperfor Australia (yellowpages.com.au).
Pricing
This Actor uses all-in Pay Per Event (PPE) pricing (isPPEPlatformUsagePaidByUser: false). Platform compute and network usage are included in the event prices below with no separate platform-usage pass-through charge. Every plan, including the free plan, can extract up to 10,000 results per run.
| Event | Free | Bronze | Silver | Gold / Platinum / Diamond | Description |
|---|---|---|---|---|---|
result | $0.005001 | $0.004875 | $0.004750 | $0.004000 | Charged once per validated US business record written to the default dataset. |
apify-actor-start | $0.018836 | $0.018365 | $0.017894 | $0.015068 | Charged once at Actor startup per GB of allocated memory (default 256 MB = 1 event). |
Scheduled change: from 2026-11-04 the result event price becomes $0.0112 (Free), $0.01092 (Bronze), $0.01064 (Silver) and $0.00896 (Gold / Platinum / Diamond); the start event is unchanged. The examples below use the current prices.
If includeReviews: true and a business profile page cannot be loaded, the list-level record is still saved but is not charged; OUTPUT.degradedUncharged counts these records.
Representative total run cost examples
- Sample / health-check run (
3business records at256 MB):- Free tier:
$0.018836 + (3 × $0.005001) = $0.033839 - Gold tier:
$0.015068 + (3 × $0.004000) = $0.027068
- Free tier:
- 100 business leads (
100records at256 MB):- Bronze tier:
$0.018365 + (100 × $0.004875) = $0.505865 - Gold tier:
$0.015068 + (100 × $0.004000) = $0.415068
- Bronze tier:
- 1,000 business leads (
1,000records at256 MB):- Bronze tier:
$0.018365 + (1,000 × $0.004875) = $4.893365 - Gold tier:
$0.015068 + (1,000 × $0.004000) = $4.015068
- Bronze tier:
Frequently asked questions (FAQ)
How fast is Yellow Pages Scraper USA?
Search and category runs with includeReviews: false extract up to 30 complete business records per page directly from Yellow Pages search results in 3–10 seconds, without needing to load 30 separate detail pages.
When should I enable includeReviews?
Enable includeReviews: true only when you need individual customer review texts (reviews[]) or profile-only fields such as email, paymentMethods, services, and socialLinks; keeping it false is significantly faster because all core lead fields (name, phone, website, address, categories, rating, reviewCount, yearsInBusiness, claimed, bbbAccredited) are extracted directly from the search page.
Can I scrape startUrls without running keyword searches?
Yes—leave searchTerms and locations empty when calling the API with startUrls, and the Actor will crawl only the URLs you provide.
How does deduplication work across multiple searches or pages?
Every listing is deduplicated by its canonical yellowPagesId and profileUrl before being written to the dataset or charged, so overlapping searches never produce duplicate records or double charges.
What happens if a search query returns zero businesses?
The Actor detects Yellow Pages empty-result pages, charges $0 for result events, and writes a structured OUTPUT summary (status: "empty", deliveredCount: 0) to the default key-value store. If every page is blocked or the input is invalid, the run ends with a FAILED status, OUTPUT.status of blocked or invalid_input, and no result charges. OUTPUT.stopReason records why the run stopped (completed, result_limit, charge_limit, time_limit or aborted).
Is there a free-plan result limit?
No. Free-plan runs have the same limit as paid plans: up to 10,000 business results per run.
Last verified: 2026-10-27