Yelp Business Contact Scraper avatar
Yelp Business Contact Scraper
Under maintenance

Pricing

from $6.00 / 1,000 results

Go to Apify Store
Yelp Business Contact Scraper

Yelp Business Contact Scraper

Under maintenance

Developed by

Țugui Dragoș

Țugui Dragoș

Maintained by Community

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.

5.0 (1)

Pricing

from $6.00 / 1,000 results

1

3

3

Last modified

4 days ago

Extract comprehensive business data from Yelp across 32 countries with bulletproof reliability.

TL;DR

Production-ready Yelp scraper that extracts 17 data fields per business from any Yelp domain worldwide. Supports up to 200 results per search with 5x parallel processing, automatic retries, and language-specific selectors for non-English sites.

Quick Start (30 seconds)

  1. Select Country: Choose from 32 Yelp domains (US, UK, Germany, Japan, etc.)
  2. Enter Search: Type what you're looking for (e.g., "pizza", "plumber", "レストラン")
  3. Set Location: City or area (e.g., "New York", "Berlin", "東京")
  4. Choose Limit: 50-200 results recommended
  5. Run: Get CSV/JSON with 17 fields per business

Output: Business name, rating, reviews, address, phone, website, hours, photos, and more!


📋 Table of Contents


✨ Features

🌍 Global Coverage

  • 32 Countries Supported: All Yelp international domains
  • Language-Specific Selectors: Native-language support for 13 non-English countries
  • Localized Search Terms: Pre-configured search terms for each country

🚀 Performance & Reliability

  • 5x Parallel Processing: Scrapes 5 pages concurrently for speed
  • Up to 200 Results: Optimized for large datasets
  • 3x Retry Logic: Auto-retries failed requests
  • Bulletproof Error Handling: Multiple fallback selectors, partial data saving, graceful degradation

📊 Comprehensive Data

  • 17 Fields Per Business: Name, rating, reviews, contact info, hours, photos, and more
  • Structured Output: Clean CSV/JSON format ready for analysis
  • Real-Time Extraction: Fresh data scraped on-demand

🔒 Enterprise-Ready

  • Apify Proxy Integration: Uses residential IPs to avoid blocking
  • No Rate Limiting: Respectful crawling with configurable concurrency
  • 100% Legal: Public data extraction only

📖 Quick Tutorial

Step 1: Access the Actor

Visit the actor on Apify and click "Try for free" or "Start".

Step 2: Configure Input

Fill in 4 simple fields:

{
"country": "United States",
"searchTerms": ["pizza", "sushi"],
"location": "New York",
"maxResults": 50
}
FieldDescriptionExample
countrySelect from dropdown"United States"
searchTermsWhat to search for (array)["pizza", "cafe"]
locationCity or area"New York"
maxResultsHow many results (1-200)50

Step 3: Run the Actor

Click "Start" and wait 2-10 minutes depending on result count.

Step 4: Download Results

Export as CSV, JSON, Excel, or HTML table. Connect to Google Sheets, Make, Zapier, or use the API.


⚙️ Input Configuration

Required Fields

1. Country (Select)

Choose the Yelp domain to scrape from:

🇺🇸 United States 🇬🇧 United Kingdom 🇨🇦 Canada
🇩🇪 Germany 🇫🇷 France 🇪🇸 Spain
🇮🇹 Italy 🇯🇵 Japan 🇦🇺 Australia
...and 23 more

2. Search Terms (Array)

Keywords to search for. Can include multiple terms:

Examples:

  • English: ["pizza", "italian restaurant", "plumber"]
  • Japanese: ["レストラン", "カフェ"]
  • German: ["restaurant", "cafe"]
  • Spanish: ["restaurante", "tapas"]

3. Location (String)

City, neighborhood, or area to search in:

Examples:

  • "New York" or "Manhattan, NY"
  • "Berlin" or "Berlin Mitte"
  • "東京" (Tokyo) or "渋谷" (Shibuya)
  • "Paris 75001" or "Champs-Élysées"

4. Max Results (Integer)

Number of businesses to scrape per search term.

  • Minimum: 1
  • Maximum: 200
  • Recommended: 50-100 for quick results, 150-200 for comprehensive data
  • Default: 50

Calculation: With 2 search terms and maxResults=50, you'll get up to 100 total results.


📦 Output Data

17 Fields Per Business

#FieldDescriptionExample
01scrapedAtTimestamp"2025-10-06T15:30:00.000Z"
02urlBusiness page URL"https://www.yelp.com/biz/..."
03countryScraped from"United States"
04searchTermSearch keyword used"pizza"
05searchLocationLocation searched"New York"
06nameBusiness name"Joe's Pizza"
07ratingStar rating"4.5 star rating"
08reviewCountNumber of reviews"1,234 reviews"
09addressFull address"123 Main St, New York, NY 10001"
10phonePhone number"(212) 555-1234"
11websiteBusiness website"https://joespizza.com"
12priceRangePrice indicator"$$"
13categoriesBusiness types (array)["Pizza", "Italian", "Casual"]
14businessHoursOperating hours (array)[{day: "Mon", time: "11AM-10PM"}]
15amenitiesAndMoreFeatures (array)["Outdoor Seating", "Delivery", "WiFi"]
16photoUrlsPhotos (array, max 10)["https://...photo1.jpg", "..."]
17reviewsTop 5 reviews (array)[{author, rating, date, text}]

Export Formats

  • CSV: Easy import to Excel, Google Sheets
  • JSON: For developers and APIs
  • Excel: Direct .xlsx download
  • HTML: Human-readable table

🌐 Supported Countries

All 32 Yelp Domains

North America (3)

  • 🇺🇸 United States - yelp.com
  • 🇨🇦 Canada - yelp.ca
  • 🇲🇽 Mexico - yelp.com.mx

Europe (18)

  • 🇬🇧 United Kingdom - yelp.co.uk
  • 🇩🇪 Germany - yelp.de (German selectors)
  • 🇫🇷 France - yelp.fr (French selectors)
  • 🇪🇸 Spain - yelp.es (Spanish selectors)
  • 🇮🇹 Italy - yelp.it (Italian selectors)
  • 🇳🇱 Netherlands - yelp.nl (Dutch selectors)
  • 🇦🇹 Austria - yelp.at
  • 🇧🇪 Belgium - yelp.be
  • 🇨🇭 Switzerland - yelp.ch
  • 🇮🇪 Ireland - yelp.ie
  • 🇵🇱 Poland - yelp.pl (Polish selectors)
  • 🇵🇹 Portugal - yelp.pt (Portuguese selectors)
  • 🇨🇿 Czech Republic - yelp.cz (Czech selectors)
  • 🇩🇰 Denmark - yelp.dk
  • 🇫🇮 Finland - yelp.fi (Finnish selectors)
  • 🇳🇴 Norway - yelp.no
  • 🇸🇪 Sweden - yelp.se (Swedish selectors)
  • 🇹🇷 Turkey - yelp.com.tr (Turkish selectors)

Asia-Pacific (8)

  • 🇯🇵 Japan - yelp.co.jp (Japanese selectors)
  • 🇦🇺 Australia - yelp.com.au
  • 🇳🇿 New Zealand - yelp.co.nz
  • 🇭🇰 Hong Kong - yelp.com.hk
  • 🇸🇬 Singapore - yelp.com.sg
  • 🇲🇾 Malaysia - yelp.my
  • 🇵🇭 Philippines - yelp.com.ph
  • 🇹🇼 Taiwan - yelp.com.tw

South America (3)

  • 🇧🇷 Brazil - yelp.com.br
  • 🇦🇷 Argentina - yelp.com.ar
  • 🇨🇱 Chile - yelp.cl

(Languages with custom selectors marked with italics)


💰 Performance & Cost

Runtime & Cost Estimates

ResultsSearch TermsTotal BusinessesTimeApify Compute Units
501~502-3 min0.02-0.03 CU
1001~1005-6 min0.05-0.06 CU
2001~2008-12 min0.08-0.12 CU
503~1506-8 min0.06-0.08 CU
1002~20010-12 min0.10-0.12 CU

Note: Actual time varies by country, search term popularity, and Yelp's response times.

Optimization Tips

  1. Start Small: Test with 10-20 results first
  2. Batch Searches: Use multiple search terms in one run vs. separate runs
  3. Peak Hours: Avoid running during Yelp peak traffic (evenings in target timezone)
  4. Concurrency: Default 5 works well. Reduce to 3 if you hit rate limits.

💡 Examples

Example 1: Restaurant Research in New York

Input:

{
"country": "United States",
"searchTerms": ["pizza", "sushi", "burger"],
"location": "Manhattan, NY",
"maxResults": 100
}

Output: 300 restaurants (100 per search term) with full contact details, ratings, and reviews.

Use Case: Market research, competitor analysis, lead generation


Example 2: Multi-Language Search in Tokyo

Input:

{
"country": "Japan",
"searchTerms": ["レストラン", "カフェ", "居酒屋"],
"location": "渋谷",
"maxResults": 50
}

Output: 150 Japanese businesses with native-language data extraction.

Use Case: Travel planning, local business directory


Example 3: European Market Analysis

Run 1 - Germany:

{
"country": "Germany",
"searchTerms": ["restaurant", "cafe"],
"location": "Berlin",
"maxResults": 200
}

Run 2 - France:

{
"country": "France",
"searchTerms": ["restaurant", "café"],
"location": "Paris",
"maxResults": 200
}

Use Case: Comparative market analysis across European cities


🔧 Troubleshooting

Common Issues

Issue: "No results found"

Causes:

  • Search term not relevant for that country
  • Location doesn't exist in that country
  • Very specific search with few results

Solutions:

  • Try broader search terms (e.g., "restaurant" instead of "vegan gluten-free pizza")
  • Verify location spelling
  • Check if location is in the selected country

Issue: "Actor ran but got fewer results than expected"

Causes:

  • Not enough businesses match search criteria
  • Some pages failed to load

Solutions:

  • Check dataset for errors (actor saves partial data)
  • Try different search terms
  • Reduce maxResults expectation

Issue: "403 Error when testing locally"

This is normal! Yelp blocks non-residential IPs.

Solution: Actor works perfectly on Apify with their proxy infrastructure. Don't test locally.


🚀 Advanced Usage

API Integration

// Run actor via Apify API
const run = await apifyClient.actor("YOUR_ACTOR_ID").call({
country: "Germany",
searchTerms: ["restaurant"],
location: "Berlin",
maxResults: 100
});
// Get results
const { items } = await apifyClient.dataset(run.defaultDatasetId).listItems();

Webhook Integration

Set up webhooks to trigger on actor completion:

  1. Go to actor "Settings"
  2. Add webhook URL
  3. Select "Run succeeded" event
  4. Get notified when data is ready

Scheduled Runs

Monitor business data changes:

  1. Create schedule (daily, weekly, monthly)
  2. Same input configuration
  3. Compare datasets over time

Data Processing

Python Example:

import pandas as pd
# Load dataset
df = pd.read_csv('yelp_results.csv')
# Analyze ratings
avg_rating = df['07_rating'].str.extract('(\\d\\.\\d)').astype(float).mean()
# Filter by price
cheap_eats = df[df['12_priceRange'] == '$']
# Export filtered
cheap_eats.to_excel('cheap_restaurants.xlsx')

📚 Additional Resources

  • CHANGELOG.md: Version history and detailed changes
  • TESTING.md: Testing guide for all 32 countries
  • IMPLEMENTATION_SUMMARY.md: Technical architecture details

🙋 Support

Need Help?

  1. Check this README: Most questions answered here
  2. Review Examples: See sample inputs/outputs above
  3. Test with Small Dataset: Start with maxResults=10 to test
  4. Contact Support: Use Apify support if issues persist

Feature Requests

Open an issue on GitHub or contact the developer.


📄 License

This actor is available for use on the Apify platform.


🏆 Why Choose This Scraper?

Bulletproof Reliability: Triple retry logic, fallback selectors, partial data saving ✅ Global Coverage: 32 countries with language-specific optimizations ✅ Fast Performance: 5x parallel processing ✅ Comprehensive Data: 17 fields per business ✅ Production Ready: Tested, documented, and optimized for Apify ✅ Easy to Use: 4 fields to configure, results in minutes


Start scraping Yelp data nowRun on Apify