Yellow Pages Scraper USA — Business Leads
Pricing
from $4.00 / 1,000 business listing extracteds
Yellow Pages Scraper USA — Business Leads
Scrape Yellow Pages USA business listings with names, phones, websites, addresses, ratings, reviews, and structured local lead data.
Pricing
from $4.00 / 1,000 business listing extracteds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Yellow Pages US Scraper — Business Leads & Reviews
Free plan limit: Free-plan users can receive up to 5 result records per run. Paid-plan and local/unknown runs retain the Actor's existing limits.
Extract US business listings from yellowpages.com at scale. Get business name, phone, address, website, email, hours, services, categories, ratings, review counts, social links, BBB accreditation, claimed status, years in business, and optional customer reviews — all in clean, CRM-ready structured JSON.
Search by keyword + location, paste category URLs, or pull individual business profiles. Mix all three input modes in a single run. Optimized for B2B lead generation, local-SEO analysis, market research, and AI-agent pipelines.
What it does
- Search mode: provide
searchTerms+locations(cross-joined) — e.g.["plumber", "electrician"]×["Boston, MA", "Austin, TX"]= 4 searches - URL mode: paste yellowpages.com search URLs, city-category pages (
/boston-ma/plumbers), or individual business profiles (/mip/<slug>-<id>) - Multi-input: combine search terms and direct URLs in one run
- Pagination: crawls up to
maxPagesPerSearchresult pages per search - Detail enrichment: visits each business profile page for the full field set (email, hours, services, socials, trust signals)
- Reviews: optional per-business customer reviews (newest-first, capped via
maxReviewsPerBusiness) - Sort: by relevance (default), distance, name, or rating
Use cases
- Build targeted B2B prospect lists by category and ZIP/city for outbound sales
- Pull every business in a category or metro for market coverage and competitor mapping
- Filter for unverified/owner-unclaimed listings to identify outreach opportunities
- Enrich existing CRM data with verified phone, website, structured address, hours, socials
- Extract customer reviews for sentiment analysis, quality benchmarking, reputation research
- Map local business density and compare market-level metrics (ratings, review volume, years in business)
- Seed RAG/LLM corpora with structured local-business records
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerms | string[] | no | ["plumber"] | Keywords/categories — cross-joined with locations |
locations | string[] | no | ["Boston, MA"] | US locations in "City, ST" or ZIP format |
startUrls | array | no | [] | Direct yellowpages.com URLs (search, category, or profile) |
sortBy | enum | no | default | default/distance/name/rating |
includeReviews | boolean | no | false | Embed customer reviews per business |
maxReviewsPerBusiness | integer | no | 30 | Cap on reviews per business (0 = all, hard cap ~2000) |
maxResults | integer | no | 100 | Hard cap on total business rows (0 = unlimited, internal cap 100k) |
maxPagesPerSearch | integer | no | 5 | Max result pages per search/URL |
Output
One record per business in the dataset:
| Field | Type | Example |
|---|---|---|
name | string | "Acme Plumbing" |
phone | string|null | "(617) 555-1234" |
email | string|null | "info@acme.com" |
website | string|null | "https://acme.com" |
address | object | {street, city, state, postalCode, country} |
addressFormatted | string | "123 Main St, Boston, MA 02108" |
coordinates | object|null | {lat, lng} |
categories | string[] | ["Plumbing","Contractor"] |
primaryCategory | string|null | "Plumbing" |
services | string[] | ["Drain cleaning","Water heater repair"] |
paymentMethods | string[] | ["Visa","Mastercard"] |
hours | object|null | {mon:"8:00-17:00",...} |
rating | number|null | 4.5 |
reviewCount | number|null | 128 |
reviews | array|null | [{author,rating,date,text}] (when includeReviews=true) |
socialLinks | object | {facebook,instagram,linkedin,twitter,youtube} |
logo | string|null | url |
photos | string[] | [url,...] |
claimed | boolean | true |
bbbAccredited | boolean | false |
yearsInBusiness | number|null | 12 |
description | string|null | "Family-owned plumbing services since..." |
tagline | string|null | "Your trusted local plumber" |
isAd | boolean | false |
yellowPagesId | string | "123456789" |
profileUrl | string | https://www.yellowpages.com/.../mip/acme-12345 |
sourceUrl | string | URL crawled |
searchTerm | string | "plumber" |
searchLocation | string | "Boston, MA" |
scrapedAt | string | ISO 8601 timestamp |
Pricing
This Actor uses pay-per-event pricing. Current Apify Store prices, verified against the live Actor on 2026-09-23:
| Event | Free | Bronze | Silver | Gold / Platinum / Diamond | When it is charged |
|---|---|---|---|---|---|
result | $0.005001 | $0.004875 | $0.004750 | $0.004000 | One validated Yellow Pages US business record is stored in the dataset. |
apify-actor-start | $0.018836 | $0.018365 | $0.017894 | $0.015068 | One event per GB of Actor memory, with at least one event per run. |
Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.
Proxy routing
Requests use Apify's US-targeted Residential proxy automatically. Proxy settings are managed by the Actor and are not part of the public input.
Quick start
# Install Apify CLInpm install -g apify-cli# Clone and deploycd yellow-pages-us-scrapernpm installapify loginapify push -f -w 120
API usage
# Run via APIcurl -X POST "https://api.apify.com/v2/acts/USERNAME~yellow-pages-us-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms":["dentist"],"locations":["Austin, TX"],"maxResults":50}'
// Node.js / Apify SDKimport { Actor } from 'apify';const run = await Actor.call('USERNAME/yellow-pages-us-scraper', {searchTerms: ['dentist'],locations: ['Austin, TX'],maxResults: 50,includeReviews: true,maxReviewsPerBusiness: 10,});const { items } = await Actor.dataset(run.defaultDatasetId).listItems();console.log(items);
Tips
- Start small: set
maxResults: 10to verify data quality before scaling - Reviews are slow: enabling
includeReviewsroughly doubles runtime and cost — use only when needed - Large coverage: split a big request across multiple cities/ZIPs — a single search caps at ~6,000 results
- Sort by rating: set
sortBy: "rating"to surface top-rated businesses first - Cross-join math: 2 terms × 3 locations = 6 searches; results are merged and deduplicated by profile URL
Limitations
- Yellow Pages itself caps results at roughly 30 pages (~6,000 listings) per search term + location pair
- Reviews are capped at ~2,000 per business by Yellow Pages
- Email is only available when present on the business profile page (many YP listings do not show email)
Export & integrations
Export scraped data to JSON, CSV, or Excel from the Apify Console. Use webhooks or the Apify API to push results to HubSpot, Salesforce, Google Sheets, Airtable, or any HTTP endpoint. Schedule runs via the Apify Scheduler for ongoing monitoring.
Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.
