Yelp Reviews Scraper — Unlimited Reviews + AI Analysis
Pricing
from $2.75 / 1,000 results
Yelp Reviews Scraper — Unlimited Reviews + AI Analysis
Scrape unlimited Yelp reviews past the 3-review page cap — reviewer name, rating, date, full text, photos and owner replies. Feed it a business URL or a search term plus city. Optional AI pain-point teardown turns the reviews into ranked complaint themes. No login or API key. Clean JSON or CSV.
Pricing
from $2.75 / 1,000 results
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
16
Monthly active users
15 hours ago
Last modified
Categories
Share
Yelp Reviews Scraper
Pull the full review history of any Yelp business — not the 3 reviews Yelp shows an anonymous visitor. Paste business URLs or search a category and city, and get one clean row per business with every review attached: reviewer, star rating, date, full text, photos and the owner's reply.
Runs over plain HTTP with a built-in residential proxy. No Yelp account, no API key, no login, no browser.
Why use it
- Past the 3-review cap. Yelp's public page stops at three reviews. This walks the whole list — hundreds or thousands per business.
- Reviews you can actually analyse. Star rating, ISO date, full text, reviewer name, photo count and owner responses, as structured fields rather than scraped blobs.
- AI pain-point analysis. Optional LLM teardown that turns a pile of reviews into ranked complaint themes with supporting quotes. Nothing else on the Store does this.
- Review insights. Optional computed summary per business: rating distribution, recent-vs-lifetime trend, and the phrases that keep recurring.
- Proxy included. Residential routing is built in at no extra cost. You do not need Apify's RESIDENTIAL add-on, and you do not need to configure anything.
Two ways to start
By business URL — fastest when you already know the businesses:
{"startUrls": [{ "url": "https://www.yelp.com/biz/gary-danko-san-francisco" }],"scrapeReviews": true,"maxReviews": 200}
By category and city — when you want every business in a market:
{"searchTerms": ["plumbers"],"searchLocation": "Chicago, IL","scrapeReviews": true,"maxReviews": 100,"maxItems": 50}
Use one or the other. Filling both scrapes the URLs and the whole category, which costs more than you probably intended.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | Yelp business page URLs to pull reviews from |
searchTerms | array | — | Category search, e.g. ["plumbers"]. Needs searchLocation |
searchLocation | string | — | City or region for the category search, e.g. "Chicago, IL" |
searchSortBy | string | — | Sort order for search results |
scrapeReviews | boolean | true | Pull the full review list per business |
maxReviews | integer | 200 | Cap on reviews per business |
reviewInsights | boolean | false | Rating distribution, trend and recurring phrases. Billed per business |
painPointAnalysis | boolean | false | AI complaint-theme teardown. Paid plans, billed per business |
maxItems | integer | 1000 | Cap on businesses returned |
useCachedData | boolean | true | Reuse recent results instead of refetching |
maxCacheAgeDays | integer | — | How stale cached data may be |
proxy | object | — | Optional override. Leave empty to use the built-in residential proxy |
Output
One row per business, with reviews nested:
{"rating": 4.5,"reviewCount": "6140 reviews","url": "https://www.yelp.com/biz/gary-danko-san-francisco","reviews": [{"type": "review","reviewId": "bk9F7IbAlP7unixO-Wsoig","rating": "5","text": "Wife and I came here for our Anniversary...","createdAt": "2026-07-14","user": { "name": "…", "reviewCount": 42 },"photos": [],"ownerReply": null}]}
Export as JSON, CSV, Excel or XML from the dataset, or read it straight from the API.
Use cases
- Reputation monitoring — track how a location's rating moves over time and catch complaint spikes early.
- Competitor teardown — pull a rival's reviews and let the pain-point analysis rank what their customers complain about.
- Market research — collect every review in a category and city to find the gaps nobody is serving.
- Review-response workflows — feed unanswered reviews into a drafting pipeline.
- Training data — sentiment and rating pairs at volume.
Cost
Pay per event. You are charged for the businesses returned and the reviews collected, plus the optional insight and analysis add-ons if you enable them. Lower maxReviews to control spend on businesses with thousands of reviews, and set Apify's Max charge field on the run for a hard ceiling.
FAQ
Do I need a Yelp account or API key? No. Everything comes from public pages.
Do I need Apify's RESIDENTIAL proxy add-on? No. Residential routing is built in. Leaving the proxy field empty is the intended setup.
How many reviews can it get? As many as Yelp publishes for that business, bounded by maxReviews.
Why did I get fewer reviews than I asked for? The business has fewer than your cap, or Yelp filtered some as "not recommended" — those are not on the public list.
Can I get reviews from a date range? Reviews carry their posted date, so filter downstream on createdAt.
Does it get business contact details and emails too? This listing is reviews-focused. For business data with contact-email enrichment, use Yelp Leads & Business Scraper.
Support
Open an issue on the actor's Issues tab. Include the run ID — it makes problems much faster to pin down.
🤖 For AI agents & LLM apps
Callable over the Apify API and MCP. Pass startUrls for a known business or searchTerms + searchLocation to discover businesses first. The dataset is one row per business with a reviews array, which suits retrieval and summarisation directly. Keep maxReviews modest for interactive use — review collection dominates runtime.
⚠️ Disclaimer
This actor collects publicly available information from Yelp business pages. Use the data in line with Yelp's terms and applicable law, including data-protection rules where review content contains personal data. You are responsible for how you use what you collect.