Yelp Business Review Scraper
Pricing
$0.90 / 1,000 reviews
Yelp Business Review Scraper
Collect full-text reviews from public Yelp businesses. Use URLs, aliases, IDs, or one search query and location, then save ratings, dates, source links, vote counts, and photos. Leave the per-business limit blank to collect all available reviews until the source is exhausted.
Pricing
$0.90 / 1,000 reviews
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
⭐ Read Yelp Business Reviews as Structured Data
Researchers, marketers, and business teams can collect public Yelp business reviews in a structured dataset. Each saved row gives you the full review text, star rating, posting date, language, source links, vote counts, and photos, so you can study customer feedback without copying pages by hand.
Use cases
- Collect public reviews with Yelp Reviews.
- Collect reviews for a named business with Yelp Business Reviews.
- Find complaint-focused review text with Yelp Reviews Complaints.
- Check public review pages with How Do I See Yelp Reviews.
- Keep direct review links for follow-up with Yelp Review Link.
📄 Yelp Review Rows You Can Analyze
Returned data
Each dataset row is one review found for a selected public Yelp business. The row includes full text, a 1 to 5 rating, the posting date, an ISO 639-1 language code, business and review IDs, direct Yelp links, useful, funny, and cool counts, and review photos. If requested, it can also include reviewer profile details. An owner reply is included when one is available.
This Actor collects Yelp review data only. It does not add general business profile fields such as hours, phone numbers, or categories.
▶️ Find a Yelp Business and Collect Its Reviews
How to run
Choose one Target: Business URLs, Business aliases, Business IDs, or Search by query and location. Add values only to the fields for that Target. For search, enter one query and one location. Set any review options, start the run, and open the dataset link in the output.
Source choice
Use a public Yelp URL, alias, or ID for a known business. Use Search by query and location when you want the Actor to find businesses first. The Actor then collects reviews for the businesses it finds.
Wait less
Set a smaller Maximum reviews per business when you need a quick sample. Leave it blank to collect all available reviews until the source is exhausted.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
target | string | Select one source mode: businessUrls, businessAliases, businessIds, or queryLocation. |
businessUrls | array of objects | When Target is Business URLs, add one or more objects with a public Yelp business URL. |
businessAliases | array of strings | When Target is Business aliases, add one or more Yelp business aliases. |
businessIds | array of strings | When Target is Business IDs, add one or more Yelp business IDs. |
searchQuery | string | When Target is Search by query and location, enter the business type or name to find. |
searchLocation | string | When Target is Search by query and location, enter the city, region, or country to search. |
maxReviewsPerBusiness | integer | Optional per-business cap. Leave it empty to collect all available reviews until the source is exhausted. |
reviewLanguage | string | Optional two-letter ISO 639-1 language code, or leave it empty to include every language. |
reviewOrder | string | Choose newest, yelpOrder, or rating for the order of returned reviews. |
eliteOnly | boolean | When on, include only reviews from Yelp Elite members. |
includeReviewerProfile | boolean | When on, add reviewer name, location, profile link, activity counts, and Elite status when available. |
Successful input example
This example is copied from a successful run on the current beta build.
{"target": "businessUrls","businessUrls": [{"url": "https://www.yelp.com/biz/joes-pizza-new-york-148"}],"maxReviewsPerBusiness": 10}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
dataset | string | Link to the review records saved by the run. |
Review record fields
| Field | Type | What it does |
|---|---|---|
businessName | string | Name of the Yelp business. |
businessId | string | Stable Yelp ID for the business. |
businessUrl | string | Direct link to the Yelp business page. |
reviewId | string | Stable Yelp ID for the review. |
reviewUrl | string | Direct link to the Yelp review. |
reviewText | string | Full text of the review. |
reviewRating | number | Star rating given in the review, from 1 to 5. |
reviewDate | string | Date and time when the review was posted. |
reviewLanguage | string | ISO 639-1 language code for the review. |
usefulCount | integer | Number of useful votes for the review. |
funnyCount | integer | Number of funny votes for the review. |
coolCount | integer | Number of cool votes for the review. |
photos | array of objects | Photos attached to the review. This array can be empty. |
photos.url | string | Direct link to an attached review photo. |
photos.caption | string | Caption for an attached review photo when available. |
reviewerProfile | object | Reviewer details when reviewer profiles are requested. |
reviewerProfile.name | string | Name shown on the Yelp reviewer profile. |
reviewerProfile.location | string | Location shown on the Yelp reviewer profile. |
reviewerProfile.profileUrl | string | Direct link to the Yelp reviewer profile. |
reviewerProfile.reviewCount | integer | Number of reviews shown on the reviewer profile. |
reviewerProfile.friendCount | integer | Number of friends shown on the reviewer profile. |
reviewerProfile.photoCount | integer | Number of photos shown on the reviewer profile. |
reviewerProfile.isElite | boolean | Whether the reviewer is a Yelp Elite member. |
ownerReply | object | Business owner reply when one is available. |
ownerReply.ownerName | string | Name shown for the business owner reply. |
ownerReply.text | string | Full text of the business owner reply. |
ownerReply.date | string | Date and time when the owner reply was posted. |
Successful review row
This unshortened row is copied from a successful current-beta run. It shows optional photos and reviewer profile data.
{"businessName": "Joe's Pizza","businessId": "KEEXuHCYhsQJ-zpJhu98bA","businessUrl": "https://www.yelp.com/biz/joes-pizza-new-york-148","reviewId": "THgmarArbiRyVvZxuZSR-Q","reviewUrl": "https://www.yelp.com/biz/joes-pizza-new-york-148?hrid=THgmarArbiRyVvZxuZSR-Q","reviewText": "We shared individual slices of the Supreme, White with spinach & garlic, and Caprese.\n\nWhile Joe's Pizza is a famous chain always packed with tourists, it's honestly a solid NYC slice that everyone should try at least once. The crust has that perfect crispy yet chewy texture, the toppings are great, and because it's constantly busy, you know you're getting fresh pizza right out of the oven.\n\nService was fast with no issues. Just keep in mind that it's a small, high-traffic spot, so expect the floors and dining counters to be a bit messy.","reviewRating": 5,"reviewDate": "2026-08-20T08:41:18Z","reviewLanguage": "en","usefulCount": 0,"funnyCount": 0,"coolCount": 0,"photos": [{"url": "https://s3-media0.fl.yelpcdn.com/bphoto/2jrYOKcN5ww1-YXDEPDIqw/o.jpg"},{"url": "https://s3-media0.fl.yelpcdn.com/bphoto/VK2mNFtmJpZgqCaTdluE4Q/o.jpg"},{"url": "https://s3-media0.fl.yelpcdn.com/bphoto/M9vO1cy_zvZD0ACb7QeEpw/o.jpg"}],"reviewerProfile": {"name": "Cody E.","location": "Brooklyn, NY","profileUrl": "https://www.yelp.com/user_details?userid=xSwFF3fl8Tn1u21Sv4xwsQ","reviewCount": 4,"friendCount": 10,"photoCount": 2,"isElite": false}}
💳 Pricing
Event charged
One event covers each full-text review returned with its rating and posting date. The price shown for this event is $0.0009. There is no separate one-time event in the pricing panel.
🔌 Integrations
Video guide
Dataset access
Use the output dataset link to read the rows in Apify. You can export the dataset as JSON or CSV, or read it through the Apify API.
❓ FAQ
Do I need a Yelp API key or account?
No. The Actor works with public Yelp business pages and does not require a Yelp API key or Yelp account setup.
Can I use a URL, alias, ID, or search?
Yes. Choose one Target and fill in its fields. Use a business URL, alias, or ID for a known business. Use Search by query and location to find businesses first, then collect their reviews.
Can I collect all available reviews?
Yes. Leave Maximum reviews per business empty to collect all available reviews until the source is exhausted. A numeric value limits the number collected for each business.
Can I filter or sort the reviews?
Yes. Set a two-letter ISO 639-1 language code, choose Newest first, Yelp order, or Highest rating first, and turn on Elite reviews only when needed.
What reviewer and owner details can I get?
Turn on Include reviewer profiles to request reviewer names, locations, profile links, activity counts, and Elite status. An owner reply appears when Yelp provides one.
Does this collect Google Maps reviews?
No. This Actor is limited to Yelp review collection.
Can I export the data?
Yes. Open the dataset from the run output and export the structured rows as JSON or CSV, or read them through the Apify API.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Facebook Reviews Scraper: Compare public Facebook recommendations with Yelp review data.
- DoorDash Reviews Scraper: Check public DoorDash review previews for restaurant feedback.
- Google Maps List Scraper: 30+ Fields Per Place: Compare place ratings and review counts from public Google Maps shared lists.
- Yelp Business Review Scraper: Compare another Yelp-focused source for full-text review collection.
- Yelp Business & Review Scraper: Build a broader Yelp business and review dataset.
Made with ❤️ by Maxime Dupré