YellowPages Scraper - USA avatar

YellowPages Scraper - USA

Pricing

from $0.70 / 1,000 business listings

Go to Apify Store
YellowPages Scraper - USA

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

1

Monthly active users

6 days ago

Last modified

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.

📊 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.

FieldsReturned data
businessName, listingId, yellowPagesUrl, gelbeSeitenUrlBusiness identity, source identifier when available, and listing URL.
phone, email, websitePublic contact details displayed or linked by Yellow Pages.
addressStreet, city, state, and ZIP code.
categories, servicesSource-ordered categories and published services.
rating, reviewCount, reviews, reviewSnippetAggregate rating, review count, and public review text or snippets.
openingHours, openStatusPublished hours and source-displayed status.
description, yearsInBusinessBusiness description and reported years in business.
amenities, imageUrlsPublished amenities and deduplicated gallery image URLs.
products, brands, paymentMethods, socialLinks, faxOther published business and contact details.
languagesServed, neighborhoods, companyFactsPublished languages, areas, and company facts.
trainingOpportunities, faqsAvailable German business training offers and questions and answers.
claimedStatus, isAdvertisedPublished US profile claim and ad status.

See the Output schema for field-level details.

🚀 Search business directories or add listing URLs

  1. Choose Keyword search, Yellow Pages URLs, or German business search.
  2. 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.
  3. For a URL run, add YellowPages.com search-result or individual business-listing URLs, or YellowPages.ca search URLs.
  4. 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.
  5. 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

FieldTypeWhat it does
targetstringRequired choice: search, urls, or germany. The form prefills search; there is no schema default.
searchTermsarray of stringsOne or more non-empty keywords for US or German searches. Each uses the same location. Schema default and form prefill: ["dentist"]. Ignored for urls.
locationstringUS 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.
startUrlsarray of objectsRequired for urls: YellowPages.com search or listing URLs, or YellowPages.ca search URLs. No default. Ignored for keyword searches.
startUrls[].urlstringComplete public URL. Each object needs this field.
nationwidebooleanSearch all Germany and ignore location and radiusKm. Default: false. Used only for germany.
radiusKmintegerLocal 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.
sortBystringrelevance (default), distance, rating, or name. Germany supports relevance and rating; distance and name use relevance there. URLs ignore this field.
includeClosedBusinessesbooleanInclude listings the site marks as closed, when that status is available. Default: false. Applies to all choices.
maxResultsintegerRun-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

FieldTypeWhat it does
businessListingsstringOpens 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.

FieldTypeWhat it does
businessNamestringBusiness name.
listingIdstringListing identifier, when available.
yellowPagesUrlstringUS or Canadian Yellow Pages profile URL.
gelbeSeitenUrlstringGerman Gelbe Seiten profile URL.
phonestringPublished phone number.
faxstringPublished fax number.
emailstringPublished email address.
websitestringLinked business website.
addressobjectAvailable address parts.
address.streetstringStreet, suite, or unit.
address.citystringCity.
address.statestringState or province.
address.postalCodestringZIP or postal code.
categoriesarray of stringsBusiness categories in source order.
servicesarray of stringsPublished services.
productsarray of stringsPublished products.
brandsarray of stringsPublished brands.
paymentMethodsarray of stringsAccepted payment methods.
socialLinksarray of stringsPublished social profile links.
ratingnumberBusiness rating on a five-point scale.
reviewCountintegerPublished review total.
reviewsarray of objectsAvailable public review text or snippets.
reviews[].authorstringReviewer name.
reviews[].ratingnumberReview rating on the displayed scale.
reviews[].datestringReview date text as returned. Do not assume an ISO date format.
reviews[].textstringReview text.
openingHoursarray of stringsPublished hours in source order.
openStatusstringPublished current opening status.
descriptionstringPublished business description.
reviewSnippetstringShort public review text.
yearsInBusinessintegerPublished years in business.
amenitiesarray of stringsPublished amenities and features.
imageUrlsarray of stringsUnique business and gallery image URLs.
languagesServedarray of stringsPublished languages served.
neighborhoodsarray of stringsPublished neighborhoods.
companyFactsobjectAvailable founding and facility details.
companyFacts.foundingInfostringPublished founding information.
companyFacts.facilitiesarray of stringsPublished facilities.
trainingOpportunitiesarray of objectsGerman training and apprenticeship offers.
trainingOpportunities[].titlestringOffer title.
trainingOpportunities[].descriptionstringOffer details, when available.
faqsarray of objectsPublished business questions and answers.
faqs[].questionstringQuestion text.
faqs[].answerstringAnswer text.
claimedStatusstringPublished US profile claim status.
isAdvertisedbooleanWhether 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.

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)

  • searchTerms now takes a list so you can search several keywords in one run. Change "searchTerms": "dentist" to "searchTerms": ["dentist"] in saved inputs.
  • target no longer has a default. Set it to search for keywords or urls for submitted URLs so the run uses your chosen search method. Keyword runs now ignore startUrls, and URL runs ignore searchTerms and location. Split mixed keyword and URL inputs into separate runs.
  • maxResults no longer defaults to 25 or stops at a maximum setting of 500. Set maxResults to a positive number to keep a run-wide business limit. Use 0 or omit it to collect all available businesses.
  • includeBusinessHours and includeListingDetails are 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 startUrls and target: "urls".
  • Search Gelbe Seiten with target: "germany". Use searchTerms with a German location, set radiusKm for a local radius, or set nationwide to true. Choose sortBy: "relevance" or sortBy: "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, or address.fullAddress. These fields have no replacements. Update exports that use them. Listing links remain in yellowPagesUrl for US and Canadian businesses and gelbeSeitenUrl for 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 🫡

Made with ❤️ by Maxime Dupré