Yelp Business Contact Scraper

Yelp Business Contact Scraper

by tuguidragos

Scrape verified business contact data from Yelp listings across all categories. Extract company names, phone numbers, emails, websites, addresses, and...

121 runs
21 users
Try This Actor

Opens on Apify.com

About Yelp Business Contact Scraper

Scrape verified business contact data from Yelp listings across all categories. Extract company names, phone numbers, emails, websites, addresses, and customer ratings. Perfect for B2B outreach, local lead generation, sales prospecting, and market research. Fast Yelp scraper. Export to CSV, JSON.

What does this actor do?

Yelp Business Contact Scraper is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Apify Actor Node.js JavaScript Crawlee Playwright License: Proprietary

Target. Extract. Grow. The world's Yelp data at your fingertips.

--- ## Features - Multi-domain Global Support: Seamlessly scrape from 32 different Yelp country domains. - Comprehensive Data Extraction: Get every detail including Business name, address, phone, website, ratings, reviews, categories, hours, amenities, and photos. - Optimized for Lead Generation: Perfect for building B2B datasets, market analysis, and sales prospecting. - Configurable & Scalable: Control result limits per search term, with automatic pagination handling. - Robust Error Handling: Graceful recovery from missing data and page load failures. - Thread-safe Operation: Concurrent crawling with proper state management for high-volume scraping. - Language-aware Selectors: Optimized selectors for different language versions of Yelp to ensure high accuracy. ## Input Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | country | string | Yes | United States | The Yelp country domain to scrape from. Select from 32 supported countries. | | searchTerms | array | Yes | - | List of keywords to search for (e.g., "pizza", "plumber", "cafe"). Multiple terms will be searched sequentially. | | location | string | Yes | - | The city or area to search in (e.g., "New York", "Berlin", "Tokyo"). | | maxResults | integer | No | 100 | Maximum number of business listings to scrape per search term. Range: 1-200. | ### Example Input json { "country": "United States", "searchTerms": ["pizza", "sushi"], "location": "New York", "maxResults": 50 } ### Input for German Yelp json { "country": "Germany", "searchTerms": ["restaurant", "cafe"], "location": "Berlin", "maxResults": 100 } ### Input for Japanese Yelp json { "country": "Japan", "searchTerms": ["restaurant"], "location": "Tokyo", "maxResults": 25 } ## Output Format Each scraped business is stored as a JSON object with the following fields: | Field | Type | Description | |-------|------|-------------| | 01_scrapedAt | string | ISO 8601 timestamp of when the data was scraped | | 02_url | string | Full URL of the business detail page | | 03_country | string | Country/domain the business was scraped from | | 04_searchTerm | string | The search term used to find this business | | 05_searchLocation | string | The location used in the search | | 06_name | string | Business name | | 07_rating | string | Star rating (e.g., "4.5 star rating") | | 08_reviewCount | string | Number of reviews | | 09_address | string | Full business address | | 10_phone | string | Phone number | | 11_website | string | Business website URL | | 12_priceRange | string | Price range indicator | | 13_categories | array | List of business categories | | 14_businessHours | array | Operating hours for each day | | 15_amenitiesAndMore | array | List of amenities and features | | 16_photoUrls | array | URLs of business photos (up to 10) | | 17_reviews | array | Recent reviews with author, rating, date, and text | ### Sample Output json { "01_scrapedAt": "2024-01-15T10:30:00.000Z", "02_url": "https://www.yelp.com/biz/joes-pizza-new-york", "03_country": "United States", "04_searchTerm": "pizza", "05_searchLocation": "New York", "06_name": "Joe's Pizza", "07_rating": "4.5 star rating", "08_reviewCount": "2,847 reviews", "09_address": "7 Carmine St, New York, NY 10014", "10_phone": "(212) 366-1182", "11_website": "https://www.joespizzanyc.com", "12_priceRange": "$", "13_categories": ["Pizza", "Italian"], "14_businessHours": [ "Mon: 10:00 AM - 4:00 AM", "Tue: 10:00 AM - 4:00 AM", "Wed: 10:00 AM - 4:00 AM", "Thu: 10:00 AM - 4:00 AM", "Fri: 10:00 AM - 5:00 AM", "Sat: 10:00 AM - 5:00 AM", "Sun: 10:00 AM - 4:00 AM" ], "15_amenitiesAndMore": ["Casual", "Good for Groups", "Take Out"], "16_photoUrls": [ "https://s3-media0.fl.yelpcdn.com/bphoto/example1.jpg", "https://s3-media0.fl.yelpcdn.com/bphoto/example2.jpg" ], "17_reviews": [ { "author": "John D.", "rating": "5 star rating", "date": "1/10/2024", "text": "Best pizza in NYC! The classic slice is perfection." } ] } ## Supported Yelp Domains The actor supports the following 32 Yelp country domains: | Country | Domain | |---------|--------| | 🇦🇷 Argentina | yelp.com.ar | | 🇦🇺 Australia | yelp.com.au | | 🇦🇹 Austria | yelp.at | | 🇧🇪 Belgium | yelp.be | | 🇧🇷 Brazil | yelp.com.br | | 🇨🇦 Canada | yelp.ca | | 🇨🇱 Chile | yelp.cl | | 🇨🇿 Czech Republic | yelp.cz | | 🇩🇰 Denmark | yelp.dk | | 🇫🇮 Finland | yelp.fi | | 🇫🇷 France | yelp.fr | | 🇩🇪 Germany | yelp.de | | 🇭🇰 Hong Kong | yelp.com.hk | | 🇮🇪 Ireland | yelp.ie | | 🇮🇹 Italy | yelp.it | | 🇯🇵 Japan | yelp.co.jp | | 🇲🇾 Malaysia | yelp.my | | 🇲🇽 Mexico | yelp.com.mx | | 🇳🇱 Netherlands | yelp.nl | | 🇳🇿 New Zealand | yelp.co.nz | | 🇳🇴 Norway | yelp.no | | 🇵🇭 Philippines | yelp.com.ph | | 🇵🇱 Poland | yelp.pl | | 🇵🇹 Portugal | yelp.pt | | 🇸🇬 Singapore | yelp.com.sg | | 🇪🇸 Spain | yelp.es | | 🇸🇪 Sweden | yelp.se | | 🇨🇭 Switzerland | yelp.ch | | 🇹🇼 Taiwan | yelp.com.tw | | 🇹🇷 Turkey | yelp.com.tr | | 🇬🇧 United Kingdom | yelp.co.uk | | 🇺🇸 United States | yelp.com | ## Technical Details ### Technology Stack - Runtime: Node.js - Web Scraping Framework: Crawlee with Playwright - Browser: Chromium (headless mode) - Platform: Apify ### Architecture The actor uses a two-phase scraping approach: 1. LIST phase: Scrapes search result pages to collect business URLs 2. DETAIL phase: Visits each business page to extract comprehensive data ### Configuration - Navigation timeout: 120 seconds - Request handler timeout: 180 seconds - Maximum concurrency: 5 parallel requests - Maximum retries: 3 per request - Headless browser with anti-detection measures ### Anti-Detection Features - Custom HTTP headers mimicking real browser requests - Disabled automation detection flags - Proxy support through Apify proxy configuration ## Cost Estimation The cost depends on the number of businesses scraped and the complexity of the pages: - Approximate compute units per 100 businesses: 0.5-1.0 CU - Each search term generates additional requests for pagination - Detail pages require more resources than list pages For a typical run scraping 100 businesses with 2 search terms: - Estimated compute units: 1-2 CU - Estimated time: 5-15 minutes ## Limitations 1. Maximum results per search term: 200 (Yelp pagination limit) 2. Rate limiting: Yelp may temporarily block requests if too many are made in a short period 3. Dynamic content: Some business information may not be available if loaded via JavaScript after initial page load 4. Regional availability: Not all businesses have complete information across all fields 5. Review limit: Only the first 5 reviews are extracted per business 6. Photo limit: Maximum of 10 photos are extracted per business ## Error Handling The actor handles errors gracefully: - Missing selectors: Falls back to alternative selectors - Page load failures: Retries up to 3 times - Missing data: Fields are set to null if not found - Failed business pages: Error is logged and scraping continues with next business ## Usage Tips 1. Start with a small maxResults value (10-20) to test your search parameters 2. Use specific search terms for better results 3. Combine multiple search terms in a single run for efficiency 4. Monitor the run logs for any warnings about blocked requests ## FAQ / Troubleshooting ### Why am I getting fewer results than maxResults? Yelp often filters search results or limits the total number of available pages for a specific query. If you request 200 results but only get 150, it means Yelp only displayed 150 unique businesses for those search terms. Solution: Try adding more specific search terms or broader location queries. ### How can I speed up the scraping? The actor is configured to use optimal concurrency (up to 5 parallel threads) to balance speed and safety. Tip: Run multiple actor instances with different sets of search terms if you need massive scale. ### Is this scraper safe from blocking? Yes. We use advanced browser fingerprinting and proxy rotation to mimic real human behavior. However, extremely aggressive scraping (thousands of requests per minute) can still trigger temporary blocks. The actor handles this by automatically retrying. ### Can I extract business emails? Yelp does not publicly display email addresses. This actor extracts the business website, which you can then use with a separate email extraction tool or visit manually to find contact details. ### Why are some fields null? Not all businesses provide every piece of information. If a business hasn't listed their price range or amenities, those fields will be returned as null. This is normal behavior and accurate to the source data. ---

Built with 🩶 for the Apify community 🫡

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Yelp Business Contact Scraper now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
tuguidragos
Pricing
Paid
Total Runs
121
Active Users
21
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support