Yellow Pages Scraper
Pricing
$0.65 / 1,000 scraped businesses
Yellow Pages Scraper
Collect public US YellowPages.com business listings by keyword and location or by source URL. Export contact details, addresses, categories, ratings, reviews, hours, and listing links.
Pricing
$0.65 / 1,000 scraped businesses
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
21 hours ago
Last modified
Categories
Share
📌 Turn Yellow Pages searches into structured business data
Yellow Pages Scraper is a web scraper for sales, operations, and market-research teams that need public US business data from YellowPages.com. Search by one category and location, or submit Yellow Pages search and listing URLs, to collect contact details, addresses, categories, ratings, reviews, hours, and source links in export-ready rows.
- Build a local business lead list with public names, phone numbers, websites, and addresses.
- Run a Yellow Pages phone number lookup for a category in a US city, state, or ZIP code.
- Create a business directory export for spreadsheet analysis or downstream workflows.
- Compare nearby companies with local competitor research using categories, ratings, reviews, and hours.
- Complete known businesses with Yellow Pages listing enrichment from individual listing URLs.
📊 What data is returned?
Each dataset row represents one unique, successfully saved Yellow Pages business listing. Optional fields are absent when Yellow Pages does not display them.
| Fields | Returned data |
|---|---|
businessName, listingId, yellowPagesUrl | Business identity, source identifier when available, and canonical listing URL. |
phone, email, website | Public contact details displayed or linked by Yellow Pages. |
address | Street, city, state, and ZIP code. |
categories, services | Source-ordered categories and published services. |
rating, reviewCount, reviews, reviewSnippet | Aggregate rating, review count, and public review text or snippets. |
openingHours, openStatus | Published hours and source-displayed status. |
description, yearsInBusiness | Business description and reported years in business. |
amenities, imageUrls | Published amenities and deduplicated gallery image URLs. |
See the Output schema for field-level details.
🚀 How do I run the Actor?
- Choose Keyword search or Yellow Pages URLs as the Target.
- For a keyword search, enter one business keyword or category and one US city, state, or ZIP code.
- For a URL run, add YellowPages.com search-result or individual business-listing URLs.
- Choose the maximum number of businesses. Keyword searches can also be ordered by relevance, distance, rating, or name and can include businesses marked closed.
- Run the Actor and open the default dataset.
The Actor covers public US YellowPages.com pages. It does not scrape linked business websites, private data, or Yellow Pages sites for other countries.
🧾 What input can I use?
| Field | Type | Description |
|---|---|---|
target | String | Required Target: search or urls. |
searchTerms | String | One business keyword or category for the search Target. |
location | String | One US city/state or ZIP code for the search Target. |
startUrls | Array | YellowPages.com search-result or individual listing URLs for the URL Target. |
sortBy | String | relevance, distance, rating, or name; used for keyword searches. |
includeClosedBusinesses | Boolean | Include listings Yellow Pages identifies as closed. Defaults to false. |
maxResults | Integer | Maximum unique listings to save, from 1 to 500. |
Example keyword search:
{"target": "search","searchTerms": "dentist","location": "Los Angeles, CA","sortBy": "relevance","includeClosedBusinesses": false,"maxResults": 60}
For a URL run, set target to urls and provide entries such as {"url":"https://www.yellowpages.com/search?search_terms=dentist&geo_location_terms=Los%20Angeles%2C%20CA"} in startUrls.
📦 What does an output row look like?
{"businessName": "Example Dental Group","listingId": "12345678","yellowPagesUrl": "https://www.yellowpages.com/los-angeles-ca/mip/example-dental-group-12345678","phone": "(213) 555-0142","website": "https://www.exampledental.com/","address": {"street": "100 S Main St","city": "Los Angeles","state": "CA","postalCode": "90012"},"categories": ["Dentists"],"rating": 4.5,"reviewCount": 12,"openingHours": ["Mon-Fri 9:00 am - 5:00 pm"],"openStatus": "Open until 5:00 pm"}
Values vary because Yellow Pages does not publish every optional field for every business.
💳 How does pricing work?
This Actor uses pay-per-event pricing. The Business listing event is charged once for each unique business listing successfully saved to the dataset; check the Store pricing panel for the price on your plan. Searches with no saved listings, duplicates that are not saved, diagnostic messages, and unavailable pages do not create this event. Apify platform usage may also apply under your account plan.
🔌 How can I use the data?
- Export the default dataset as JSON, CSV, Excel, XML, or RSS.
- Start runs and retrieve dataset data with the Apify API.
- Schedule recurring searches in Apify Console.
- Send run events or dataset items through webhooks and supported Apify integrations.
❓ FAQ
Can I submit an individual Yellow Pages listing URL?
Yes. Choose Yellow Pages URLs and add the business-listing URL. You can mix multiple valid listing and search-result URLs in one run; the overall maxResults limit still applies.
Can I reproduce an existing Yellow Pages search?
Yes. Submit its YellowPages.com search-result URL with the URL Target. Each valid URL is handled independently, and duplicate businesses are saved only once per run.
Can I include businesses marked as closed?
Yes. Enable includeClosedBusinesses. By default, a listing is skipped only when Yellow Pages identifies it as closed.
Why are phone numbers, emails, websites, reviews, or hours sometimes missing?
These fields are optional. The Actor returns public values Yellow Pages displays and does not invent missing data or crawl business websites for additional contact details.
Can I submit several keyword-and-location searches in one run?
No. A keyword run accepts one category or keyword and one location. Use separate runs for independently configured searches, or submit existing Yellow Pages search URLs with the URL Target.
Do I need a Yellow Pages account or API key?
No. The Actor reads public YellowPages.com pages and does not ask for Yellow Pages credentials.
Why use this instead of a Yellow Pages API?
Use an official API when its access, data, and terms fit your needs. This Actor is for workflows that need public listing data in Apify datasets, exports, schedules, webhooks, or the Apify API.
Can a valid search return no rows?
Yes. A narrow search may have no matches, and an unavailable page may produce no saved listing. No Business listing event is charged when no row is saved.
📝 Changelog
- 0.0: Initial release.
🆘 Support
For issues, questions, or feature requests, open an Actor issue.
🔗 Other actors
- Google Maps Phone Number Scraper ↗ — Build phone-focused local business lists from Google Maps searches and listing URLs.
- Google Maps Shared List Scraper ↗ — Export place details from public Google Maps shared lists for comparison with directory listings.
- Business Address Scraper ↗ — Find physical addresses published on company websites with source-page evidence.
- LinkedIn Company Scraper ↗ — Add public company profile, industry, size, and location data to known businesses.
Made with ❤️ by Maxime Dupré
