Yelp Scraper — Reviews, Ratings, Contacts, CSV, No API Key
Pricing
Pay per usage
Yelp Scraper — Reviews, Ratings, Contacts, CSV, No API Key
Get YOUR Yelp business leads as CSV/JSON in 2 min — 10+ real runs. No paid API, no copy-paste, no rate limits. Name, address, phone, rating, reviews, hours, photos — by keyword+city. Built for local-biz prospecting + SMB lead-gen. Custom pipeline — spinov001@gmail.com · Tips: t.me/scraping_ai
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Alex
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Share
Yelp Business Scraper — Listings, Reviews, Ratings by Category and Location
Get every Yelp business in any city — with full review datasets — in one run. Search by keyword + location, filter by category / price / rating, and get clean JSON back: business profile, reviews (with sentiment-rich metadata), photos, hours, contact info.
No Yelp Fusion API signup. No 5,000 call/day ceiling. No deprecated review-scraping endpoint that Yelp shut down in 2018. This actor handles the live Yelp UI with rotating residential fingerprints and gives you the dataset the official API no longer returns.
Who uses this
- Local-SEO agencies tracking client reviews and competitor reviews across target cities.
- Franchise ops teams aggregating all review activity across 50-500 locations daily.
- Market researchers mapping the restaurant / salon / auto-shop competitive landscape in a city before client engagement.
- Lead-generation teams building B2B prospect lists (independent restaurants, salons, gyms) filtered by review count and rating.
- Data scientists training sentiment-classification models on a genuine local-business review corpus.
What you get per business
| Field | Type | Example |
|---|---|---|
business_id | string | "stripe-sf-coffee" |
name | string | "Stripe SF Coffee" |
rating | number | 4.5 |
review_count | number | 312 |
price | string | $$ |
categories | array | ["Coffee & Tea", "Cafes"] |
address | string | "510 Townsend St, San Francisco, CA 94103" |
latitude | number | 37.7749 |
longitude | number | -122.4194 |
phone | string | "+14155551234" |
hours | object | {mon: "7:00-18:00", tue: ...} |
website | string | https://example.com |
is_closed | boolean | false |
photo_urls | array | [...] |
attributes | object | {wheelchair_accessible: true, accepts_credit_cards: true, outdoor_seating: true, ...} |
What you get per review
| Field | Example |
|---|---|
review_id | "aB3cD..." |
rating | 5 |
text | "Favorite coffee spot near the office..." |
author_name | "Jane D." |
author_location | "San Francisco, CA" |
author_review_count | 47 |
author_is_elite | true |
date | 2026-03-12 |
useful_votes | 12 |
funny_votes | 2 |
cool_votes | 5 |
photos | array of review-photo URLs |
Input
{"searchTerm": "coffee","location": "San Francisco, CA","maxBusinesses": 50,"maxReviewsPerBusiness": 100,"priceFilter": ["$", "$$"],"openNow": false,"minRating": 4.0,"sortBy": "highest_rated"}
searchTerm— keyword. Leave empty to search by category only.location— city + state, neighborhood, or precise address.maxBusinesses— cap on businesses returned. Default 100.maxReviewsPerBusiness— cap on reviews per business. Set0to skip reviews.priceFilter— subset of$,$$,$$$,$$$$.minRating— minimum star rating filter.sortBy—highest_rated,most_reviewed,distance,recommended.
Python usage example
from apify_client import ApifyClientimport statisticsclient = ApifyClient("YOUR_APIFY_TOKEN")# Top-rated coffee shops in SF, with recent reviewsrun_input = {"searchTerm": "coffee","location": "San Francisco, CA","maxBusinesses": 30,"maxReviewsPerBusiness": 50,"sortBy": "highest_rated",}run = client.actor("knotless_cadence/yelp-business-scraper").call(run_input=run_input)items = list(client.dataset(run["defaultDatasetId"]).iterate_items())# The dataset mixes business records and review records — split thembusinesses = [x for x in items if x.get("type") == "business"]reviews = [x for x in items if x.get("type") == "review"]print(f"Found {len(businesses)} businesses, {len(reviews)} reviews")# Top 5 by weighted sentiment (rating × log(review_count))import mathranked = sorted(businesses,key=lambda b: b["rating"] * math.log(max(b["review_count"], 2)),reverse=True,)[:5]for b in ranked:print(f" {b['rating']} ★ ({b['review_count']:>4} reviews) {b['name']}")
Common questions
Q: Is this more reliable than the Yelp Fusion API? For review data, yes — Yelp's official API returns only 3 "snippet" reviews per business since 2018. This actor returns all public reviews. For structured data (business profile, hours, categories), both are reliable; the Fusion API may be preferable if you have a key and don't need reviews.
Q: How fresh are the reviews? Live at run time. Running daily provides reliable new-review deltas.
Q: Can I filter by Elite reviewers only?
Yes — filter the returned dataset on author_is_elite == true. Elite reviews typically carry more weight in Yelp's ranking algorithm.
Q: Does this work for Yelp.ca, Yelp.co.uk, etc.?
Yes — pass the local URL or a location in the target country ("Toronto, ON", "London, UK"). Supported: US, CA, UK, IE, AU, NZ, FR, DE, IT, ES, NL, BE.
Q: What's the cost? Apify compute-unit pricing. A 50-business + 50-review run typically costs $0.03-$0.08.
Q: How do I avoid scraping the same business twice over multiple runs?
business_id is stable across runs — dedupe on that field in your downstream pipeline.
Export integrations
- CSV / JSON / Excel / HTML (native Apify dataset download)
- Google Sheets (via Apify integration)
- Webhooks on each run
- S3 / GCS direct sync
- Zapier / Make.com / n8n
Related scrapers
| Source | Actor | Data |
|---|---|---|
| Yelp (this) | Local-business reviews | Local sentiment |
| Google Maps | Business listings | Local data |
| Trustpilot | Service reviews | Brand reputation |
| Glassdoor | Employee reviews | Workforce sentiment |
| Discussion threads | Unfiltered opinion |
All free on Apify Store.
About the maintainer
Maintained by an active Apify developer (78 public actors covering scraping, MCP servers, local-business data, and review-mining tools). Technical articles on Hashnode, Telegraph, Write.as, and Mataroa covering scraping architecture, local-SEO data pipelines, and sentiment analysis.
Need a custom local-business intelligence pipeline (multi-city review tracking, competitor benchmarking, franchise rollups)? Email spinov001@gmail.com or message t.me/scraping_ai.
Disclaimer
Designed for market-research, local-SEO, and academic use. Respect Yelp's Terms of Service, applicable data-protection law (GDPR, CCPA), and scrape publicly visible content only. Not affiliated with Yelp Inc.