Yellow Pages Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
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 contact —
companyName,contactPhone,websiteUrl,directoryUrl - Address —
streetLine,cityName,stateCode,postalCode, and thefullAddressas printed - Reputation and context —
starRating,reviewsTotal,operatingYears,categoryTags - Search trail —
queryTerm,queryLocation, and acollectedAttimestamp on each row
Quick start
- Click Try for free and open the input form.
- Add one or more business keywords under Business keywords (for example roofing contractor, coffee shop).
- List the Cities and states to cover, one per line, like Austin, TX.
- Set Pages to read per search and a Listing cap per search to control how much you pull.
- Press Start, then download the results as JSON, CSV, Excel, or XML when the run ends.

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
| Field | Type | Required | Description |
|---|---|---|---|
queryTerms | array of strings | Yes | Business keywords to search, one per line (e.g. roofing contractor, coffee shop). Each is paired with every area. |
searchAreas | array of strings | Yes | Cities and states to cover, one per line, such as Austin, TX. Every keyword runs against each area. |
pageLimit | integer | No | Result pages to read per keyword-and-area pairing; each page holds about 30 listings. Default 2. |
resultsLimit | integer | No | Cap on listings gathered per keyword-and-area pairing. Default 50. |
timeoutSeconds | integer | No | Seconds 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
| Field | Type | Description |
|---|---|---|
companyName | string | Business name shown on the listing |
contactPhone | string | Main phone number |
streetLine | string | Street portion of the address |
cityName | string | Town or city |
stateCode | string | Two-letter state code |
postalCode | string | ZIP or postal code |
fullAddress | string | Whole address as printed on the listing |
websiteUrl | string | Link to the company website |
categoryTags | array | Trade or service categories for the listing |
starRating | number | Average review score on a five-star scale |
reviewsTotal | integer | Number of reviews |
operatingYears | integer | Years in business, when stated |
directoryUrl | string | Direct link to the Yellow Pages listing |
queryTerm | string | Keyword that surfaced this result |
queryLocation | string | Area searched for this result |
collectedAt | string | ISO 8601 capture timestamp |
errorMessage | string | Reason 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
pageLimitto 3 for roughly 90 results, or raiseresultsLimitto 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
nullfor those — theerrorMessagefield only fills in when parsing actually fails. - Raise
timeoutSecondsif 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.
Is it legal to scrape 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.