YellowPages Scraper - USA
Pricing
from $0.70 / 1,000 business listings
YellowPages Scraper - USA
Collect public business listings from YellowPages.com, YellowPages.ca, and Gelbe Seiten. Export available contact details, addresses, ratings, reviews, hours, and profile links.
Pricing
from $0.70 / 1,000 business listings
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
1
Monthly active users
6 days 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 business data from YellowPages.com, YellowPages.ca, and Gelbe Seiten. Search by keywords and location, or submit supported Yellow Pages 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.
📊 Business details from Yellow Pages and Gelbe Seiten
Each dataset row represents one unique, successfully saved business listing. Available fields vary by site and listing. Optional fields may be absent, and lists may be empty.
| Fields | Returned data |
|---|---|
businessName, listingId, yellowPagesUrl, gelbeSeitenUrl | Business identity, source identifier when available, and 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. |
products, brands, paymentMethods, socialLinks, fax | Other published business and contact details. |
languagesServed, neighborhoods, companyFacts | Published languages, areas, and company facts. |
trainingOpportunities, faqs | Available German business training offers and questions and answers. |
claimedStatus, isAdvertised | Published US profile claim and ad status. |
See the Output schema for field-level details.
🚀 Search business directories or add listing URLs
- Choose Keyword search, Yellow Pages URLs, or German business search.
- For a keyword search, enter one or more business keywords or categories and one US city, state, or ZIP code. For Germany, use a German city or postal code, or turn on nationwide search.
- For a URL run, add YellowPages.com search-result or individual business-listing URLs, or YellowPages.ca search URLs.
- Set a business limit, or leave it empty to collect available listings. US keyword searches can use relevance, distance, rating, or name order. German searches support relevance or rating. You can also include businesses marked closed.
- Run the Actor and open the default dataset.
The Actor covers public US YellowPages.com pages, Canadian YellowPages.ca searches, and German Gelbe Seiten searches. It does not scrape linked business websites or private data.
⚙️ Input
| Field | Type | What it does |
|---|---|---|
target | string | Required choice: search, urls, or germany. The form prefills search; there is no schema default. |
searchTerms | array of strings | One or more non-empty keywords for US or German searches. Each uses the same location. Schema default and form prefill: ["dentist"]. Ignored for urls. |
location | string | US city/state or ZIP code for search; German city or postal code for germany. Schema default and form prefill: Los Angeles, CA. Replace it for a German local search. Ignored for URLs and nationwide Germany. |
startUrls | array of objects | Required for urls: YellowPages.com search or listing URLs, or YellowPages.ca search URLs. No default. Ignored for keyword searches. |
startUrls[].url | string | Complete public URL. Each object needs this field. |
nationwide | boolean | Search all Germany and ignore location and radiusKm. Default: false. Used only for germany. |
radiusKm | integer | Local German search radius from 1 to 50 kilometres. No default. Leave empty to use the local search area. Ignored for nationwide searches and other choices. |
sortBy | string | relevance (default), distance, rating, or name. Germany supports relevance and rating; distance and name use relevance there. URLs ignore this field. |
includeClosedBusinesses | boolean | Include listings the site marks as closed, when that status is available. Default: false. Applies to all choices. |
maxResults | integer | Run-wide maximum unique businesses. Use 0 or omit it to collect all available businesses. Positive values set a cap, with no schema maximum. The form prefills 25; this is not a default. |
This public input is from a successful current-beta default-input run:
{"target": "search","nationwide": false,"searchTerms": ["dentist"],"location": "Los Angeles, CA","sortBy": "relevance","includeClosedBusinesses": false,"maxResults": 25}
For a URL run, set target to urls and add URL objects to startUrls. Each business is saved once across all submitted values. The first saved match keeps its data; later matches do not add another row.
🧾 Output
Dataset link
| Field | Type | What it does |
|---|---|---|
businessListings | string | Opens the saved business listings in the default dataset. |
Business listing fields
All three sites use this shared row shape. Each row has businessName and a profile URL. Other fields depend on the published data.
| Field | Type | What it does |
|---|---|---|
businessName | string | Business name. |
listingId | string | Listing identifier, when available. |
yellowPagesUrl | string | US or Canadian Yellow Pages profile URL. |
gelbeSeitenUrl | string | German Gelbe Seiten profile URL. |
phone | string | Published phone number. |
fax | string | Published fax number. |
email | string | Published email address. |
website | string | Linked business website. |
address | object | Available address parts. |
address.street | string | Street, suite, or unit. |
address.city | string | City. |
address.state | string | State or province. |
address.postalCode | string | ZIP or postal code. |
categories | array of strings | Business categories in source order. |
services | array of strings | Published services. |
products | array of strings | Published products. |
brands | array of strings | Published brands. |
paymentMethods | array of strings | Accepted payment methods. |
socialLinks | array of strings | Published social profile links. |
rating | number | Business rating on a five-point scale. |
reviewCount | integer | Published review total. |
reviews | array of objects | Available public review text or snippets. |
reviews[].author | string | Reviewer name. |
reviews[].rating | number | Review rating on the displayed scale. |
reviews[].date | string | Review date text as returned. Do not assume an ISO date format. |
reviews[].text | string | Review text. |
openingHours | array of strings | Published hours in source order. |
openStatus | string | Published current opening status. |
description | string | Published business description. |
reviewSnippet | string | Short public review text. |
yearsInBusiness | integer | Published years in business. |
amenities | array of strings | Published amenities and features. |
imageUrls | array of strings | Unique business and gallery image URLs. |
languagesServed | array of strings | Published languages served. |
neighborhoods | array of strings | Published neighborhoods. |
companyFacts | object | Available founding and facility details. |
companyFacts.foundingInfo | string | Published founding information. |
companyFacts.facilities | array of strings | Published facilities. |
trainingOpportunities | array of objects | German training and apprenticeship offers. |
trainingOpportunities[].title | string | Offer title. |
trainingOpportunities[].description | string | Offer details, when available. |
faqs | array of objects | Published business questions and answers. |
faqs[].question | string | Question text. |
faqs[].answer | string | Answer text. |
claimedStatus | string | Published US profile claim status. |
isAdvertised | boolean | Whether the US listing is marked as an ad. |
Example business listing
This complete row is from a successful current-beta run.
{"businessName": "Frieden, Richard A DDS","listingId": "14640832","yellowPagesUrl": "https://www.yellowpages.com/los-angeles-ca/mip/frieden-richard-a-dds-14640832","phone": "(323) 655-3854","website": "http://friedenrichardadds.localsearch.com/","categories": ["Dentists"],"address": {"street": "6360 Wilshire Blvd, Ste 506","city": "Los Angeles","state": "CA","postalCode": "90048"},"rating": 5,"reviewCount": 3,"yearsInBusiness": 33,"isAdvertised": true,"paymentMethods": ["mastercard","visa"],"reviews": [{"author": "Herman T.","rating": 5,"date": "2024-29-04","text": "Good team of experts and assistants. My problem was solved in an hour which i was suffering through. Friendly nature with good service."},{"author": "Cora K.","rating": 5,"date": "2024-22-04","text": "Dr. Richard A. Frieden is a highly skilled and experienced dentist who has been providing exceptional dental care to patients. With a gentle touch and a compassionate demeanor, he creates a comfortable and welcoming environment for all his patients."},{"author": "Gustavo W.","rating": 5,"date": "2023-15-10","text": "I recently had the pleasure of visiting for a routine dental checkup, and I am compelled to share my outstanding experience. From the moment I walked through the door, I was greeted by a warm and friendly receptionist, setting the tone for the rest of my visit.The clinic itself exudes professionalism and cleanliness, immediately putting any dental anxieties at ease. The waiting area was comfortable, offering a calming ambiance with soothing background music and tasteful décor. The minimal wait time was a testament to their commitment to punctuality and respect for their patients' time."}],"openingHours": ["Mo-Fr 09:00-17:00"],"description": "Offering General Dentistry for all ages. Convenient location in Los Angeles, California. Accepting new patients! Call to make an appointment!","imageUrls": ["https://i3.ypcdn.com/blob/1ac76f6f77107e8d922e0132f0982e02720ad074_150x150_crop.jpg","https://i3.ypcdn.com/blob/1ac76f6f77107e8d922e0132f0982e02720ad074_228x168_crop.jpg","https://i1.ypcdn.com/blob/f36cf149fb4694af50d8ba73842537db247f8952_228x168_crop.jpg","https://i2.ypcdn.com/blob/bad0e9d8f429589b829a8308630c5628cea5905f_228x168_crop.jpg"],"neighborhoods": ["Central LA","Mid-City West"],"companyFacts": {"foundingInfo": "1993"},"claimedStatus": "Claimed"}
Values vary because the sites do not publish every optional field for every business.
💳 Pricing
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.
🔌 Integrations
- 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 YellowPages.com business-listing URL. You can mix multiple valid listing and search-result URLs in one run; the overall maxResults limit still applies. Canadian URLs must be search URLs.
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?
A keyword run accepts several keywords with one shared location. Use separate runs for independently configured locations, or submit existing Yellow Pages search URLs with the URL choice.
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. An access failure is not proof of an empty search. No Business listing event is charged when no row is saved.
Can I search Canada or Germany?
For Canada, choose Yellow Pages URLs and submit YellowPages.ca search URLs. For Germany, choose German business search and enter keywords with a city or postal code. You can search nationwide or set a local radius up to 50 kilometres. Published fields vary by site.
What should I check before using the data?
Check the site's current terms and the rules that apply to your use. Public listing data can include personal details. Choose how you use and store the data with those rules in mind.
📝 Changelog
v1.0 (24-10-2026)
searchTermsnow takes a list so you can search several keywords in one run. Change"searchTerms": "dentist"to"searchTerms": ["dentist"]in saved inputs.targetno longer has a default. Set it tosearchfor keywords orurlsfor submitted URLs so the run uses your chosen search method. Keyword runs now ignorestartUrls, and URL runs ignoresearchTermsandlocation. Split mixed keyword and URL inputs into separate runs.maxResultsno longer defaults to 25 or stops at a maximum setting of 500. SetmaxResultsto a positive number to keep a run-wide business limit. Use0or omit it to collect all available businesses.includeBusinessHoursandincludeListingDetailsare no longer used. Available listing details are now collected automatically. Remove both keys from saved inputs. There is no replacement switch to turn off detail collection.- Search Canadian YellowPages.ca listings with search URLs in
startUrlsandtarget: "urls". - Search Gelbe Seiten with
target: "germany". UsesearchTermswith a Germanlocation, setradiusKmfor a local radius, or setnationwidetotrue. ChoosesortBy: "relevance"orsortBy: "rating"; other sort choices stop a German search with a warning. - Return more published business details when available, including fax, products, brands, payment methods, social links, languages, neighborhoods, company facts, German training offers and FAQs, and US claim and ad status.
- Rows no longer include
latitude,longitude,searchTerm,searchLocation,sourceUrl,sourcePage,sourcePosition,scrapedAt,address.country, oraddress.fullAddress. These fields have no replacements. Update exports that use them. Listing links remain inyellowPagesUrlfor US and Canadian businesses andgelbeSeitenUrlfor German businesses. - US relevance searches and German searches now use 512 MB by default. Other searches use 256 MB by default.
- Reliability improvements.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Google Maps Phone Number Scraper to build phone-focused local business lists from Google Maps searches and listing URLs.
- Google Maps List Scraper for Shared Lists to export place details from public Google Maps shared lists for comparison with directory listings.
- Business Address Scraper to find physical addresses published on company websites with source-page evidence.
- LinkedIn Company Profile Scraper to add public company profile, industry, size, and location data to known businesses.
- Website Email & Contact Scraper to find public emails on business websites returned in your listing rows.
Made with ❤️ by Maxime Dupré