Yellow Pages Scraper (Cheap) avatar

Yellow Pages Scraper (Cheap)

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Yellow Pages Scraper (Cheap)

Yellow Pages Scraper (Cheap)

Yellow Pages scraper that pulls local business listings from yellowpages.com, so sales teams and researchers get business names, phones, addresses, and ratings without the manual work.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Data API

Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Yellow Pages Business Scraper

Yellow Pages Business Scraper

Building a call list off Yellow Pages by hand means copying a name, a phone number, and an address from one card, scrolling, and doing it again until your eyes glaze over. This scraper does the copying for you. Give it a business keyword and a city, and it walks the Yellow Pages results page by page, pulling the company name, phone, full address, website, rating, and trade categories into a clean table you can open in a spreadsheet. Point it at one keyword in one town, or a dozen keywords across a dozen cities, and let it run.

What you get

Every listing comes back as one row with the same shape, so missing pieces show up as null instead of shifting your columns around. The data splits into a few natural groups:

  • Identity and contactcompanyName, contactPhone, websiteUrl, directoryUrl
  • AddressstreetLine, cityName, stateCode, postalCode, and the fullAddress as printed
  • Reputation and contextstarRating, reviewsTotal, operatingYears, categoryTags
  • Search trailqueryTerm, queryLocation, and a collectedAt timestamp on each row

Quick start

  1. Click Try for free and open the input form.
  2. Add one or more business keywords under Business keywords (for example roofing contractor, coffee shop).
  3. List the Cities and states to cover, one per line, like Austin, TX.
  4. Set Pages to read per search and a Listing cap per search to control how much you pull.
  5. Press Start, then download the results as JSON, CSV, Excel, or XML when the run ends.

How it works

Use cases

  • Lead generation — assemble call and email lists of local businesses by trade and city
  • Local market sizing — count how many businesses of a type operate in a given area before you expand there
  • Directory and database building — seed a regional business database for a category you care about
  • Outreach campaigns — gather phone numbers and websites for cold calls or mailers
  • CRM enrichment — attach phone, address, and rating data to records you already hold
  • Competitor mapping — see who else serves a neighborhood and how they rate

Input

FieldTypeRequiredDescription
queryTermsarray of stringsYesBusiness keywords to search, one per line (e.g. roofing contractor, coffee shop). Each is paired with every area.
searchAreasarray of stringsYesCities and states to cover, one per line, such as Austin, TX. Every keyword runs against each area.
pageLimitintegerNoResult pages to read per keyword-and-area pairing; each page holds about 30 listings. Default 2.
resultsLimitintegerNoCap on listings gathered per keyword-and-area pairing. Default 50.
timeoutSecondsintegerNoSeconds to wait on each page request before giving up. Default 45.

Example input

{
"queryTerms": ["roofing contractor", "coffee shop"],
"searchAreas": ["Austin, TX", "Denver, CO"],
"pageLimit": 2,
"resultsLimit": 50,
"timeoutSeconds": 45
}

Output

Results land in an Apify dataset, one row per business listing. Every field is always present — anything Yellow Pages does not show comes back as null so the table stays rectangular.

Example output

{
"companyName": "Lone Star Roofing & Exteriors",
"contactPhone": "(512) 555-0142",
"streetLine": "2204 E Cesar Chavez St",
"cityName": "Austin",
"stateCode": "TX",
"postalCode": "78702",
"fullAddress": "2204 E Cesar Chavez St, Austin, TX 78702",
"websiteUrl": "https://www.lonestarroofingtx.com/",
"categoryTags": ["Roofing Contractors", "Gutters & Downspouts", "Siding Contractors"],
"starRating": 4.5,
"reviewsTotal": 38,
"operatingYears": 17,
"directoryUrl": "https://www.yellowpages.com/austin-tx/mip/lone-star-roofing-exteriors-552014872",
"queryTerm": "roofing contractor",
"queryLocation": "Austin, TX",
"collectedAt": "2026-06-30T14:21:08.337241+00:00",
"errorMessage": null
}

Output fields

FieldTypeDescription
companyNamestringBusiness name shown on the listing
contactPhonestringMain phone number
streetLinestringStreet portion of the address
cityNamestringTown or city
stateCodestringTwo-letter state code
postalCodestringZIP or postal code
fullAddressstringWhole address as printed on the listing
websiteUrlstringLink to the company website
categoryTagsarrayTrade or service categories for the listing
starRatingnumberAverage review score on a five-star scale
reviewsTotalintegerNumber of reviews
operatingYearsintegerYears in business, when stated
directoryUrlstringDirect link to the Yellow Pages listing
queryTermstringKeyword that surfaced this result
queryLocationstringArea searched for this result
collectedAtstringISO 8601 capture timestamp
errorMessagestringReason a listing failed to parse; null on success

Tips for best results

  • Try one keyword and one city first. A small run shows you the column shape before you queue up a long batch.
  • Each page is about 30 listings. Set pageLimit to 3 for roughly 90 results, or raise resultsLimit to cap the total per pairing instead.
  • Keywords times areas adds up fast. Three keywords across four cities is twelve separate searches, so watch the totals when you scale.
  • Not every card has every field. A listing with no website, rating, or years-in-business returns null for those — the errorMessage field only fills in when parsing actually fails.
  • Raise timeoutSeconds if requests stall. Bumping it to 60 helps on slower connections or busy result pages.

How can I use Yellow Pages business data?

How can I use the Yellow Pages Business Scraper to build a local lead list? Enter the trades you sell to under queryTerms and the towns you cover under searchAreas. The scraper returns each matching business with its phone, website, and full address, so you can load the dataset straight into a CRM or dialer and start outreach the same day.

How can I scrape Yellow Pages listings for a whole metro area? List several cities and suburbs in searchAreas and pair them with your keywords. Every keyword runs against every area, and pageLimit plus resultsLimit control depth — a practical way to pull a broad Yellow Pages business directory for a region without scraping the same page twice.

How can I research competitors in a category near me? Search your own trade keyword in your city and read the starRating, reviewsTotal, operatingYears, and categoryTags columns. That gives you a quick read on who else operates nearby, how long they have been around, and how customers rate them.

How can I enrich existing business records with phone and address data? Run the keywords and locations that match your current records, then match the scraped companyName and fullAddress back against your file to fill in missing phone numbers, websites, and categories from the Yellow Pages data.

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

Support

Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.