Yelp Business Data Extractor - Contacts & Details
Pricing
Pay per usage
Yelp Business Data Extractor - Contacts & Details
Extract complete Yelp business profiles: name, address, phone, website, hours, amenities, photos, owner info, claimed status, and more. Perfect for lead generation, local SEO audits, and competitive analysis. Complements review scrapers.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Yelp Business Data Extractor
Extract detailed business profile data from Yelp — contacts, hours, amenities, photos, owner info, and more. This actor focuses on business information, not reviews, making it the perfect complement to review scrapers.
What Data Do You Get?
For every business found, you get:
| Field | Description | Example |
|---|---|---|
name | Business name | Joe's Pizza |
address | Full street address | 7 Carmine St, New York, NY 10014 |
phone | Phone number | (212) 366-1182 |
website | Business website URL | https://joespizzanyc.com |
rating | Yelp star rating (1-5) | 4.5 |
reviewCount | Total number of reviews | 3,847 |
hours | Operating hours | Mon: 10:00 AM-4:00 AM; Tue: 10:00 AM-4:00 AM; ... |
priceRange | Price level ($-$$$$) | $ |
categories | Business categories | Pizza, Italian |
photos | Number of photos | 1,245 |
amenities | Business features | Takeout, Delivery, Outdoor Seating, Wi-Fi |
owner | Business owner name | Joe Pozzuoli |
claimedStatus | Whether business is claimed | Claimed |
url | Yelp business page URL | https://www.yelp.com/biz/joes-pizza-new-york |
Plus metadata: searchTerm, searchLocation, dataCompleteness, scrapedAt.
Use Cases
- Lead Generation — Build contact lists of local businesses with phone numbers and websites
- Local SEO Audits — Analyze business listings, claimed status, and completeness across competitors
- Competitive Analysis — Compare ratings, review counts, price ranges, and amenities
- Market Research — Study business density, categories, and trends in specific areas
- Data Enrichment — Add Yelp data to your existing business databases
- Sales Prospecting — Find unclaimed businesses that need marketing help
How It Works
- Search Phase — The actor searches Yelp for your terms + locations, discovering business URLs
- Detail Phase — Each business page is visited to extract the full profile
- Smart Extraction — Uses 3 layered strategies (JSON-LD, embedded state, DOM parsing) for maximum data coverage
- Deduplication — Automatically removes duplicate businesses across searches
Input Configuration
Required Fields
-
Search Terms (
searchTerms): List of business types to search for- Examples:
["restaurants"],["plumbers", "electricians", "roofers"],["coffee shops"]
- Examples:
-
Locations (
locations): List of locations to search in- Examples:
["New York, NY"],["San Francisco, CA", "Los Angeles, CA", "Seattle, WA"] - Tip: Use "City, State" format for best results
- Examples:
Optional Fields
-
Category (
category): Yelp category filter code- Examples:
restaurants,homeservices,health,auto,beautysvc,shopping
- Examples:
-
Max Results (
maxResults): Maximum businesses to scrape (default: 500)- Budget: 100 businesses = $0.50, 500 = $2.50, 1000 = $5.00
-
Proxy (
proxyConfiguration): Proxy settings- Residential proxies strongly recommended for Yelp
Example Input
{"searchTerms": ["italian restaurants", "pizza"],"locations": ["New York, NY", "Brooklyn, NY"],"category": "restaurants","maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example Output
{"name": "Joe's Pizza","address": "7 Carmine St, New York, NY 10014","phone": "(212) 366-1182","website": "https://joespizzanyc.com","rating": 4.5,"reviewCount": 3847,"hours": "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","priceRange": "$","categories": "Pizza, Italian","photos": 1245,"amenities": "Takeout, Delivery, Outdoor Seating, Accepts Credit Cards, Street Parking","owner": "Joe Pozzuoli","claimedStatus": "Claimed","url": "https://www.yelp.com/biz/joes-pizza-new-york","searchTerm": "pizza","searchLocation": "New York, NY","dataCompleteness": "100%","scrapedAt": "2026-03-02T12:00:00.000Z"}
Searching Multiple Areas at Once
Combine multiple search terms with multiple locations for broad coverage:
{"searchTerms": ["plumbers", "electricians", "HVAC", "roofers"],"locations": ["Austin, TX","Dallas, TX","Houston, TX","San Antonio, TX"],"category": "homeservices","maxResults": 1000}
This creates 16 search combinations (4 terms x 4 locations) and scrapes up to 1,000 unique businesses.
Tips for Best Results
-
Use Residential Proxies — Yelp aggressively blocks datacenter IPs. Residential proxies provide 10x better success rates.
-
Be Specific with Locations — "New York, NY" works better than just "New York". Include state abbreviations.
-
Use Category Filters — Adding a category (
restaurants,homeservices, etc.) returns more relevant results and fewer false positives. -
Start Small — Test with
maxResults: 50first, then scale up once you've confirmed the data looks good. -
Combine with Review Scraper — Use this actor for business data and our Yelp Reviews Scraper for detailed review text. Together they give you the complete picture.
Pricing
Pay Per Event — You only pay for successfully scraped businesses.
| Event | Price |
|---|---|
business-scraped | $0.005 per business |
Budget Examples:
- 100 businesses = $0.50
- 500 businesses = $2.50
- 1,000 businesses = $5.00
- 5,000 businesses = $25.00
No monthly fees. No minimum. Pay only for what you scrape.
Data Completeness
The actor reports a data completeness score for each business (0-100%), measuring how many of the 13 data fields were successfully extracted. Average completeness is typically 60-80% depending on how much information businesses have on their Yelp pages.
Rate Limits & Anti-Detection
The actor includes built-in protections:
- Rotating user agents (Chrome, Firefox, Safari, Edge)
- Browser-like request headers
- Random delays between requests
- Low concurrency (3 parallel requests max)
- CAPTCHA detection with graceful degradation
- Automatic retry on failures (up to 4 retries)
Technical Details
- Runtime: Node.js 18 + CheerioCrawler (lightweight, no browser needed)
- Speed: ~15-30 businesses per minute (depends on proxy quality)
- Extraction: 3-layer strategy (JSON-LD > Embedded State > DOM parsing)
- Deduplication: Automatic URL-based dedup across search pages
Changelog
v1.0.0 (2026-03-02)
- Initial release
- Multi-term, multi-location search
- 3-layer extraction (JSON-LD, embedded state, DOM)
- Full business profiles with 13+ data fields
- Pay-per-event pricing ($0.005/business)
- CAPTCHA detection and graceful degradation
- Data completeness scoring
- Detailed run statistics
Integration — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("sovereigntaylor/yelp-business-scraper").call(run_input={"searchTerm": "yelp business","maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item.get('title', item.get('name', 'N/A'))}")
Integration — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/yelp-business-scraper').call({searchTerm: 'yelp business',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title || item.name || 'N/A'));