Yellow Pages Scraper avatar

Yellow Pages Scraper

Pricing

from $2.00 / 1,000 businesses

Go to Apify Store
Yellow Pages Scraper

Yellow Pages Scraper

Scrape Yellow Pages US by keyword and location: business name, phone, address, website, categories, hours, ratings, years in business and email. Build local B2B lead lists.

Pricing

from $2.00 / 1,000 businesses

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Scrape Yellow Pages US (yellowpages.com) business listings for any keyword and US location: business name, phone number, full address, website, categories, rating and review count, years in business, open status and weekly hours. Turn on profile details to also get the business email (when published), services, brands, payment methods, AKA names, extra phone numbers, social links and GPS coordinates. Built for local B2B lead lists, sales prospecting and local-market research.

Type what you are looking for (plumber, dentist, roofing contractors) and where (Chicago, IL, Austin, TX, 10001). The Actor runs every search term in every location, walks the result pages (30 businesses per page), removes duplicate sponsored listings, and saves one clean record per business. You can also paste Yellow Pages search, category or business profile URLs.

Plain HTTP, no browser, no login. Export as JSON, CSV or Excel, or pull the dataset through the API into Google Sheets, a CRM or an LLM pipeline. You pay only for the businesses you get.

What data does Yellow Pages Scraper extract?

Every business (from the search results, charged as result):

FieldDescription
id, ypListingIdYellow Pages business id (ypid, stable) and the listing id of this placement
nameBusiness name
urlYellow Pages profile URL
phoneMain business phone, e.g. (312) 878-8062
websiteThe business's own website
address, addressText{street, city, state, postalCode, country} and a one-line address
categoriesYellow Pages categories shown on the listing
rating, reviewCountYellow Pages star rating (0-5) and number of reviews
tripAdvisorRating, tripAdvisorReviewCountTripAdvisor rating shown on some listings (restaurants, bars, hotels)
yearsInBusiness, yearsWithYellowPagesBadges shown on the listing
hoursText, isOpenNowOpen status at scrape time (open now, open 24 hours, closing soon, closed now)
hours, openingHoursWeekly hours by day ({"Monday": "6:30 am - 4:30 pm", ...}) and the raw schema.org strings
isAd, isSponsored, isPreferred, isClaimedPaid advertiser listing, sponsored ad block, "YP Preferred" badge, owner-claimed profile
businessSnippet"From Business" description snippet (customer review quotes are not collected)
thumbnailUrl, featuresListing thumbnail and Yellow Pages feature flags (website, reviews, open-24hr, ...)
searchTerm, searchLocation, rank, pageWhich search found the business and its position (organic rank across pages)
sourceUrl, scrapedAtWhere and when the record was scraped

With Open each business profile (charged as detail, one extra request per business):

FieldDescription
emailBusiness email, only when the business publishes one on its Yellow Pages profile
latitude, longitudeGPS coordinates
hoursFull weekly hours including closed days
categoriesAll categories (search cards show only the first few)
services, brands, paymentMethods, languagesServices/products, brands carried, payment methods accepted, languages spoken
akaOther names the business is listed under
extraPhones[{type: "phone" / "fax" / "toll free", number}]
socialLinks, otherLinks{facebook, instagram, linkedin, ...} and other websites listed
slogan, generalInfo, descriptionSlogan and the "General Info" text
neighborhoodsNeighborhoods the business belongs to
yearEstablished, priceRange, bbbRatingFounding year, price range and BBB grade when shown
moreInfoAny other "More Info" rows, e.g. {"Ownership": "Locally Owned", "Free Estimates": "Yes"}
detailsScrapedtrue when the profile was opened

Reviewer names, review texts and personal contact details are deliberately not collected; reviews appear only as a rating and a count.

How to scrape Yellow Pages business listings

  1. Enter one or more Search terms (for example plumber, hvac, dentist).
  2. Enter one or more Locations: city and state (Chicago, IL), neighborhood or ZIP code (10001).
  3. Set Max businesses to cap the run and the cost, and Max pages per search (30 businesses per page).
  4. Turn on Open each business profile if you need emails, full hours, services and coordinates.
  5. Click Start. Results appear in the Dataset tab; export from there or use the API.

Input example

{
"searchTerms": ["plumber", "electrician"],
"locations": ["Chicago, IL", "10001"],
"maxItems": 500,
"maxPagesPerSearch": 10,
"includeDetails": true,
"sortBy": "default",
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

Start URLs work too:

{
"startUrls": [
{ "url": "https://www.yellowpages.com/chicago-il/plumbers" },
{ "url": "https://www.yellowpages.com/search?search_terms=dentist&geo_location_terms=Austin%2C+TX" },
{ "url": "https://www.yellowpages.com/chicago-il/mip/baethke-plumbing-15128363" }
],
"maxItems": 200
}

Output example

{
"id": "15128363",
"ypListingId": "15128363",
"name": "Baethke Plumbing",
"url": "https://www.yellowpages.com/chicago-il/mip/baethke-plumbing-15128363",
"phone": "(773) 276-5430",
"website": "http://www.baethkeplumbing.com",
"address": { "street": "3511 N Cicero Ave", "city": "Chicago", "state": "IL", "postalCode": "60641", "country": "US" },
"addressText": "3511 N Cicero Ave, Chicago, IL 60641",
"latitude": 41.94505,
"longitude": -87.746765,
"categories": ["Plumbers", "Home Improvements", "Major Appliances", "Plumbing Fixtures, Parts & Supplies"],
"rating": 4.97,
"reviewCount": 64,
"yearsInBusiness": 33,
"hoursText": "open 24 hours",
"isOpenNow": true,
"hours": { "Monday": "Open 24 Hours", "Tuesday": "Open 24 Hours", "Wednesday": "Open 24 Hours", "Thursday": "Open 24 Hours", "Friday": "Open 24 Hours", "Saturday": "Open 24 Hours", "Sunday": "Open 24 Hours" },
"isAd": false,
"isSponsored": false,
"isClaimed": false,
"email": "info@baethkeplumbing.com",
"brands": ["bradford white", "rheem"],
"paymentMethods": ["check", "debit", "amex", "discover", "mastercard", "visa"],
"extraPhones": [{ "type": "phone", "number": "(773) 282-4340" }, { "type": "phone", "number": "(847) 965-8667" }],
"neighborhoods": ["Northwest Side", "Portage Park"],
"yearEstablished": 1993,
"detailsScraped": true,
"searchTerm": "plumber",
"searchLocation": "Chicago, IL",
"rank": 15,
"page": 1,
"scrapedAt": "2026-09-14T20:17:07Z"
}

How much does it cost to scrape Yellow Pages?

Pay per event, no subscription and no start fee:

  • $0.002 per business saved from search results ($2 per 1,000 leads).
  • $0.003 extra per business whose profile page is opened (only with Open each business profile, or for profile start URLs).

1,000 plumbers with phone, address, website and rating cost $2; with emails, full hours and services $5. Platform usage (compute and proxy) is billed by Apify at cost and is small: a result page is ~300 KB. Apify's free plan is enough to try it.

Yellow Pages shows at most 100 pages (3,000 businesses) for one search, and busy searches in big cities often hit that limit. To collect more, split the area: use several ZIP codes or neighboring cities as Locations. Duplicates across searches are removed automatically (by Yellow Pages business id), so overlapping areas never cost twice.

Does it get emails from Yellow Pages?

Yes, when the business lists an email on its Yellow Pages profile (the "Email Business" link). Turn on Open each business profile; the email field is empty when the business has not published one. Only business contact details shown publicly by Yellow Pages are collected.

Does Yellow Pages block scrapers?

Yellow Pages sits behind Cloudflare and answers bursts of requests from one IP with HTTP 429 challenge pages. The Actor uses real-browser TLS fingerprints, keeps concurrency low, detects challenge pages and retries them on a fresh proxy IP, so runs finish instead of silently returning nothing. Use Apify Proxy (residential, US) for large runs; without a proxy the Actor slows down to one request every ~3 seconds.

Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets or HubSpot, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets. A typical lead workflow: scrape Yellow Pages, then enrich the website domains with a contact finder and verify emails before outreach.

The Actor collects publicly available business listing data (business names, business phone numbers, addresses, websites, categories, hours and aggregate ratings) without logging in. It does not collect reviewer names, review texts or personal data about individuals. You are responsible for how you use the data and for complying with Yellow Pages' terms, anti-spam rules (CAN-SPAM, TCPA) and applicable law.

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.