Yelp Reviews Scraper
Pricing
from $2.00 / 1,000 review scrapeds
Yelp Reviews Scraper
Extract reviews from a Yelp business page. Outputs one item per review with reviewer identity, rating, date, body, reactions, elite status, and owner reply when available.
Pricing
from $2.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
tzmyk
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Extract reviews from any Yelp business page. Get reviewer names, ratings, review text, dates, reaction counts, Elite status, and owner replies — all in structured JSON, ready for analysis or export.
What it does
This Actor scrapes public reviews from Yelp business pages and outputs structured data for each review. It handles pagination automatically to collect as many reviews as you need, up to 500 per run.
Use cases
- Reputation management — Monitor what customers say about your business over time
- Competitor analysis — Compare ratings and sentiment across competing local businesses
- Market research — Understand customer pain points in a specific industry or region
- Sentiment analysis — Feed review data into NLP/AI pipelines for sentiment scoring
- Lead generation — Identify businesses with poor reviews as potential sales targets
- RAG / LLM datasets — Collect domain-specific review text for AI training or retrieval
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | ✅ | — | Full Yelp business URL (e.g. https://www.yelp.com/biz/gary-danko-san-francisco) |
maxReviews | integer | — | 50 | Number of reviews to scrape (1–500) |
proxyConfiguration | object | — | — | Proxy settings to avoid being blocked |
Example input
{"url": "https://www.yelp.com/biz/gary-danko-san-francisco","maxReviews": 100}
Output
Each review is saved as a dataset item with the following fields:
| Field | Type | Description |
|---|---|---|
reviewerName | string | Display name of the reviewer |
rating | integer | Star rating (1–5) |
date | string | ISO 8601 publish date (e.g. 2024-11-01T10:23:00.000Z) |
title | string | Review headline (null if not present) |
body | string | Full review text |
usefulCount | integer | Number of "Useful" reactions |
funnyCount | integer | Number of "Funny" reactions |
coolCount | integer | Number of "Cool" reactions |
isEliteReviewer | boolean | Whether the reviewer holds Yelp Elite status |
ownerReply | string | Business owner's reply (null if none) |
Example output
[{"reviewerName": "Jane S.","rating": 5,"date": "2024-11-01T10:23:00.000Z","title": null,"body": "Absolutely incredible dining experience. The tasting menu was flawless from start to finish.","usefulCount": 3,"funnyCount": 0,"coolCount": 1,"isEliteReviewer": true,"ownerReply": "Thank you so much, Jane! We're thrilled to hear you enjoyed your visit."},{"reviewerName": "John D.","rating": 2,"date": "2024-10-28T08:45:00.000Z","title": null,"body": "Service was slow and the portions were much smaller than expected for the price.","usefulCount": 1,"funnyCount": 0,"coolCount": 0,"isEliteReviewer": false,"ownerReply": null}]
Features
- Automatic pagination — Follows all review pages until the target count is reached
- Multi-tier extraction — Parses
__NEXT_DATA__, JSON-LD, and HTML in order; falls back to GraphQL API if blocked - Elite reviewer detection — Flags reviews from Yelp Elite members
- Owner reply capture — Includes business owner responses when available
- Reaction counts — Extracts Useful / Funny / Cool counts for each review
- Proxy support — Configurable proxy to handle Yelp's anti-bot protection
- Rate limiting — Built-in request delays to respect Yelp's servers
- Input validation — Rejects invalid URLs early with clear error messages
Notes
- Only public business pages are supported (login-required content is not scraped)
- Yelp's publicly visible review data is used in accordance with its Terms of Service
- For large datasets (500+ reviews), consider scheduling multiple runs
Support
Found a bug or have a feature request? Leave a review on this Actor's page or contact via Apify.