Yelp Business Contact Scraper
Pricing
from $0.50 / 1,000 results
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.
Pricing
from $0.50 / 1,000 results
Rating
5.0
(1)
Developer

Țugui Dragoș
Actor stats
2
Bookmarked
20
Total users
5
Monthly active users
6 days ago
Last modified
Categories
Share
Features
- Multi-domain support: Scrape from 32 different Yelp country domains
- Comprehensive data extraction: Business name, address, phone, website, ratings, reviews, categories, hours, amenities, and photos
- Configurable result limits: Control how many businesses to scrape per search term
- Automatic pagination: Handles multiple pages of search results
- Robust error handling: Graceful handling of missing data and page load failures
- Thread-safe operation: Concurrent crawling with proper state management
- Language-aware selectors: Optimized selectors for different language versions of Yelp
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
{"country": "United States","searchTerms": ["pizza", "sushi"],"location": "New York","maxResults": 50}
Input for German Yelp
{"country": "Germany","searchTerms": ["restaurant", "cafe"],"location": "Berlin","maxResults": 100}
Input for Japanese Yelp
{"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
{"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:
- LIST phase: Scrapes search result pages to collect business URLs
- 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
- Maximum results per search term: 200 (Yelp pagination limit)
- Rate limiting: Yelp may temporarily block requests if too many are made in a short period
- Dynamic content: Some business information may not be available if loaded via JavaScript after initial page load
- Regional availability: Not all businesses have complete information across all fields
- Review limit: Only the first 5 reviews are extracted per business
- 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
- Start with a small maxResults value (10-20) to test your search parameters
- Use specific search terms for better results
- Combine multiple search terms in a single run for efficiency
- Monitor the run logs for any warnings about blocked requests