Yelp Leads & Business Scraper — Emails + Unlimited Reviews
Pricing
from $2.75 / 1,000 results
Yelp Leads & Business Scraper — Emails + Unlimited Reviews
Yelp scraper with business emails — the only Yelp tool built for lead-gen. Scrape any search or business URL for name, rating, phone, website, hours, categories, price level + unlimited reviews (past the 3-review cap). Optional contact-email enrichment. Bulk JSON or CSV, pure HTTP.
Pricing
from $2.75 / 1,000 results
Rating
5.0
(5)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
76
Total users
35
Monthly active users
2 days ago
Last modified
Categories
Share
How It Works
The only Yelp scraper built for lead generation. Paste any Yelp search or business URL and get a clean, per-business row — name, rating, phone, website, address, hours, categories, price level — plus an optional verified contact email and unlimited customer reviews (no 3-review API cap). Bulk export to JSON or CSV. Pure HTTP, no headless browser to babysit.
Built for sales teams, agencies, and market researchers who need Yelp turned into an actionable B2B contact list — not just another business dump.
Why Use This Scraper?
- 📧 Contact emails nobody else returns — opt-in email enrichment reads each business's own website and attaches a real
contactEmail, so your Yelp export is a ready-to-use lead list. - ⭐ Unlimited reviews — pull every review per business, well past the 3-review limit of Yelp's official API, with full reviewer profiles and feedback counts.
- 🏢 25+ business fields — rating, review count, claim status, price level, categories, full address, phone, website, hours, owner info, amenities, photos, and the Yelp business ID.
- 🔗 Any URL works — Yelp search result pages and individual business pages, mixed freely in one run.
- ⚡ Bulk and fast — pure HTTP pipeline with configurable concurrency; scales from one business to thousands.
- 📤 Clean JSON or CSV — flat, predictable rows ready for your CRM, spreadsheet, or data warehouse.
Overview
The Yelp Leads & Business Scraper extracts three things in one run, each opt-in so you only pay for what you need:
- Business profile (always) — the core record for every business found.
- Customer reviews (toggle
scrapeReviews) — a nestedreviews[]array per business. - Contact email (toggle
enrichEmails) — acontactEmail+ full enrichment object per business.
Output is one row per business. Reviews and email data are attached to that business row, so you never have to join datasets afterward.
Supported Inputs
Provide one or more of these as startUrls. You can mix both kinds in a single run.
| Input type | Example | What you get |
|---|---|---|
| Search URL | https://www.yelp.com/search?find_desc=grill&find_loc=Los+Angeles%2C+CA | Every business across all result pages (auto-paginated) |
| Business URL | https://www.yelp.com/biz/fresh-corn-grill-west-hollywood | The full profile for that single business |
Not supported: Yelp user profiles, Yelp Collections/lists, and the Yelp events directory. Provide search or business URLs only.
Use Cases
| Audience | What they do with it |
|---|---|
| Sales & lead-gen teams | Build targeted B2B contact lists (business + email + phone) by city and category |
| Marketing agencies | Prospect local businesses for outreach campaigns |
| Market researchers | Analyze ratings, categories, and price levels across a market |
| Reputation / CX analysts | Pull full review histories for sentiment and trend analysis |
| Data teams | Feed Yelp business and review data into a CRM, BI tool, or warehouse |
- Paste URLs — drop any mix of Yelp search and business URLs into
startUrls. - Discover — search URLs are paginated automatically; every business found is queued.
- Extract — each business profile is parsed into 25+ flat fields.
- Enrich (optional) — if enabled, the scraper pulls the full review history and looks up a contact email from the business's own website.
- Emit — one clean row per business is pushed to your dataset, exportable as JSON or CSV.
Pure HTTP throughout — there's no headless browser or CAPTCHA solver for you to configure.
Input Configuration
| Field | Type | Default | Notes |
|---|---|---|---|
startUrls | array | — (required) | Yelp search and/or business URLs |
maxItems | integer | 1000 | Cap total businesses scraped |
fetchBusinessDetails | boolean | true | Visit each profile for the full field set (off = lightweight search rows) |
scrapeReviews | boolean | false | Attach the full reviews[] array per business (requires fetchBusinessDetails) |
maxReviews | integer | 1000 | Max reviews per business when scrapeReviews is on |
enrichEmails | boolean | false | Look up a contact email per business (opt-in, billed per email found) |
maxConcurrency | integer | 20 | Upper bound on parallel requests |
proxy | object | Apify Residential | Proxy configuration |
Example input
{"startUrls": ["https://www.yelp.com/search?find_desc=coffee&find_loc=Seattle%2C+WA"],"maxItems": 50,"fetchBusinessDetails": true,"scrapeReviews": true,"maxReviews": 100,"enrichEmails": true,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output Overview
Each row is a single business. The base fields are always present. When scrapeReviews is on, a reviews[] array is added. When enrichEmails is on, contactEmail, contactWebsite, and an emailEnrichment object are added.
Output Samples
Business row (base)
{"title": "Angie's Restaurant","rating": 4.2,"reviewCount": "509 reviews","isClaimed": true,"priceLevel": "$$","categories": "Breakfast & Brunch,American","fullAddress": "690 N Main St, Logan, UT 84321","city": "Logan","state": "UT","zipcode": "84321","phoneNumber": "(435) 752-9252","website": "http://www.angiesrest.com/","hours": { "Mon": "7:00 AM - 9:00 PM", "Tue": "7:00 AM - 9:00 PM" },"businessServices": ["Takeout", "Delivery", "Outdoor seating"],"photoCount": 312,"yelp_biz_id": "k0v1lBFP4vL8xQ2pXn3tZw","url": "https://www.yelp.com/biz/angies-restaurant-logan","timezone": "America/Denver","timestamp": "2026-06-21T09:14:00Z"}
With scrapeReviews: true
{"title": "Carmine's","rating": 4.5,"reviews": [{"reviewId": "hK2MnjQdsxxVz6eCTbNdMA","rating": 5,"text": "Old school Italian on a rainy cold night? Yes, please…","createdAt": "2026-05-05T16:26:51Z","user": {"id": "ZE6P_jaDtrBHWNkEKVm2LQ","displayName": "Safia S.","displayLocation": "Cleveland, OH","reviewCount": 407,"friendCount": 42,"photo": "https://s3-media0.fl.yelpcdn.com/photo/…/60s.jpg"},"feedback": { "usefulCount": 2, "funnyCount": 0, "coolCount": 2 }}]}
With enrichEmails: true
{"title": "Angie's Restaurant","website": "http://www.angiesrest.com/","contactEmail": "info@angiesrest.com","contactWebsite": "http://www.angiesrest.com/","emailEnrichment": {"emails": ["info@angiesrest.com"],"emailDomains": ["angiesrest.com"],"website": "http://www.angiesrest.com/"}}
Key Output Fields
Business — title, rating, reviewCount, isClaimed, priceLevel, categories, fullAddress, city, state, zipcode, phoneNumber, website, hours, about, businessOwnerName, businessServices, reviewhighlights, images, photoCount, yelp_biz_id, url, timezone.
Reviews (scrapeReviews) — reviews[].reviewId, rating, text, createdAt, user (id, displayName, displayLocation, reviewCount, friendCount, photo), photos, feedback (usefulCount, funnyCount, coolCount).
Email enrichment (enrichEmails) — contactEmail, contactWebsite, emailEnrichment.emails, emailEnrichment.emailDomains.
How This Compares
| Capability | Most Yelp scrapers | This Actor |
|---|---|---|
| Business contact emails | ✗ | ✅ opt-in enrichment |
| Reviews per business | often capped (3, like the official API) | ✅ unlimited |
| Search and business URLs | one or the other | ✅ both, mixed in one run |
| Fields per business | 10–15 | ✅ 25+ |
| Reviews + emails on the same row | separate datasets | ✅ merged per business |
| Runtime | often headless browser | ✅ pure HTTP |
FAQ
Does it really return business emails?
Yes — when enrichEmails is on, the scraper visits each business's own website (the one listed on its Yelp profile) and extracts a contact email. Coverage depends on the business publishing an email; not every business has one, and you're only billed per email actually found.
How is this different from Yelp's official API? Yelp's Fusion API caps reviews at three per business and exposes no contact emails. This actor returns the full review history and adds email enrichment — neither of which the official API offers.
Can I scrape just business data without reviews or emails?
Yes. Both scrapeReviews and enrichEmails default to off — leave them off for a fast, business-only run.
Do I need to handle pagination?
No. Search URLs are paginated automatically up to your maxItems limit.
Can I mix search and business URLs in one run?
Yes — put any combination in startUrls.
What export formats are supported? JSON, CSV, Excel, and the other standard Apify dataset formats.
Is a browser or CAPTCHA solver required? No. The actor runs over pure HTTP with no headless browser to configure.
Support
Found a bug or need a field that isn't here? Open an issue on the actor's Issues tab, or contact the maintainer through the Apify Store profile. Reports with the input URL and run ID are resolved fastest.
Additional Services
Need a custom Yelp workflow — scheduled monitoring, a specific field, webhook delivery into your CRM, or a tailored lead pipeline? Reach out via the Apify Store profile for custom scraping work.
Explore More Scrapers
- Google Maps Leads Scraper — local business data and emails beyond Yelp
- Trustpilot Scraper — reviews and ratings at scale
- Capterra / TrustRadius Scrapers — B2B software reviews
- LinkedIn Posts Scraper — social and professional content
- Browse the full portfolio on the Apify Store profile.
⚠️ Disclaimer
This Actor accesses publicly available data on Yelp for legitimate research, market-intelligence, and business-analysis purposes. Use of this Actor must comply with Yelp Inc.'s Terms of Service and all applicable laws, including data-protection regulations (GDPR, CCPA, etc.). The Actor's authors are not responsible for any misuse. Users must:
- Respect rate limits and avoid overloading Yelp's infrastructure
- Not use scraped data to violate user privacy or applicable terms
- Use contact data in compliance with anti-spam laws (CAN-SPAM, GDPR) and obtain consent where required
- Not republish scraped review content in violation of copyright
This Actor is not affiliated with, endorsed by, or sponsored by Yelp Inc. "Yelp" is a trademark of Yelp Inc. We do not store any scraped data; the Actor returns it directly to your Apify dataset for your authorized use.
SEO Keywords
yelp scraper, yelp leads scraper, yelp email scraper, yelp business scraper, yelp reviews scraper, yelp contact extractor, yelp data extraction, yelp business emails, yelp lead generation, yelp api alternative, yelp business directory scraper, scrape yelp reviews, yelp ratings scraper, local business leads, b2b lead generation, yelp csv export, yelp json export, yelp business listings, yelp phone number scraper, sales prospecting data