Yelp Business Review Scraper avatar

Yelp Business Review Scraper

Pricing

$1.00 / 1,000 reviews

Go to Apify Store
Yelp Business Review Scraper

Yelp Business Review Scraper

Scrape all Yelp business reviews — bypass the Fusion API's 3-review limit. Extract review text, star ratings, dates, reviewer info, photos, and owner replies. Filter by language, sort by date or rating. Export as CSV, JSON, or Excel.

Pricing

$1.00 / 1,000 reviews

Rating

0.0

(0)

Developer

Beat Analytics

Beat Analytics

Maintained by Community

Actor stats

1

Bookmarked

21

Total users

3

Monthly active users

15 days ago

Last modified

Share

Yelp Review Scraper - Extract All Business Reviews Without API Limits

Yelp Business Review Scraper is an Apify actor that extracts all reviews from any Yelp business listing, bypassing the official Yelp Fusion API's 3-review limit. Pull review text, star ratings, dates, reviewer info, photos, and business owner replies from any Yelp business page, then use the data for sentiment analysis, competitor research, reputation monitoring, or market intelligence. No API key and no application process required.

Why use this Yelp review scraper?

  • 📊 Extract all reviews, not just 3 - the Yelp Fusion API returns at most 3 reviews per business; this scraper pulls every review on the page.
  • No API key required - skip the Fusion API application process and its rate limits.
  • 🌍 Filter reviews by language - retrieve reviews in any of 24 languages, from English and Spanish to Japanese, Chinese, and Korean.
  • 🔄 Sort any way you need - newest, oldest, highest or lowest rated, Yelp default, or elite reviews only.
  • 📥 Export in any format - JSON, CSV, Excel, XML, or HTML.
  • 🔁 Automatic pagination - fetches every review page for you.
  • 🏢 Bulk scraping - scrape many businesses in one run from a list of URLs, IDs, or aliases.
  • 🔎 Find businesses by search - no URLs yet? Give a query and location (e.g. "pizza" in "Madison, WI") and the scraper finds matching businesses and scrapes their reviews.
  • 💬 Business owner replies - reply text, date, and owner info for each response.
  • 👤 Optional reviewer data - names, locations, profile URLs, review/friend/photo counts, and elite status when sensitive-data mode is on.
  • 🖼️ Review photos - every image attached to a review, with captions where available.
  • 📈 Feedback metrics - useful, funny, and cool vote counts per review.
  • 🔗 Flexible input - Yelp business URLs, aliases (URL slugs), or business IDs, mixed in one run.
  • 🛡️ Reliable and maintained - updated to track Yelp's site changes, with automatic retries built in.

What data can you extract from Yelp reviews?

Every scraped review includes the following fields:

Core review data:

  • Star rating (1-5) - the reviewer's numerical rating of the business
  • Full review text - the complete text of the review, not truncated
  • Review date - when the review was posted
  • Review language - ISO 639-1 language code (e.g., "en", "es", "fr")
  • Review ID - unique Yelp identifier for the review
  • Review URL - direct link to the review on Yelp

Business identification:

  • Business ID - Yelp's internal business identifier
  • Business alias - URL-friendly slug (e.g., "the-old-fashioned-madison")
  • Business URL - full link to the Yelp business page

Review media:

  • Images - all photos attached to the review, including URLs and captions
  • Image count - number of photos attached (in CSV output)

Community feedback:

  • Useful votes - how many users marked the review as useful
  • Funny votes - how many users marked the review as funny
  • Cool votes - how many users marked the review as cool

Business owner reply (when present):

  • Reply text - the owner's response to the review
  • Reply date - when the owner responded
  • Reply ID - unique identifier for the reply

Reviewer information (when includeSensitiveData is enabled):

  • Reviewer name - the reviewer's display name on Yelp
  • Reviewer location - where the reviewer is based
  • Reviewer profile URL - link to their Yelp profile
  • Review count - total number of reviews the user has written
  • Friend count - number of Yelp friends
  • Photo count - number of photos the user has posted
  • Elite year - the year the reviewer achieved Yelp Elite status (if applicable)
  • Reply user name - name of the business owner who replied
  • Reply user role - role of the replying user (e.g., "Business Owner")

By comparison, the Yelp Fusion API returns only 3 reviews per business with a smaller subset of fields.

How to scrape Yelp reviews

Follow these steps to scrape your first batch of Yelp reviews:

Step 1: Create a free Apify account

Sign up at apify.com if you don't already have an account. Every new account comes with $5 in free credits - enough to scrape 5,000 Yelp reviews at no cost.

Step 2: Open Yelp Business Review Scraper

Navigate to the Yelp Business Review Scraper actor page on the Apify Store. Click the Try for free button to open the actor in your Apify Console.

Step 3: Choose the businesses to scrape

In the input form, tell the scraper which Yelp businesses you want reviews from. You can mix and match these options:

  • Business URLs - paste full Yelp URLs like https://www.yelp.com/biz/the-old-fashioned-madison
  • Business aliases or IDs - enter URL slugs like the-old-fashioned-madison or Yelp business IDs
  • Search queries + locations - if you don't have URLs yet, enter search terms (e.g. pizza) and locations (e.g. Madison, WI). The scraper searches every query/location combination and scrapes the reviews of the matching businesses.

You can add as many businesses as you need. The scraper processes them all in a single run.

Step 4: Configure optional settings

Optionally, adjust these settings to fine-tune your scrape:

  • Set the review language to filter reviews in a specific language
  • Choose a sort order (newest, oldest, highest rated, etc.)
  • Set a maximum number of reviews per business
  • Enable sensitive data to include reviewer personal information

Step 5: Click Start and download your data

Click the Start button to begin scraping. Once the run completes, download your Yelp review data in any format you prefer: JSON, CSV, Excel, XML, or HTML. You can also access the data programmatically via the Apify API.

Input parameters

ParameterTypeRequiredDefaultDescription
searchQueriesarrayNo*-Search query strings to find businesses (e.g. pizza, coffee). Used together with searchLocations; every query/location combination is searched.
searchLocationsarrayNo*-Locations to search in (e.g. Madison, WI, Chicago, IL). Used together with searchQueries.
businessUrlsarrayNo*-Yelp URLs of businesses to scrape reviews from. Example: https://www.yelp.com/biz/the-old-fashioned-madison
businessAliasesOrIdsarrayNo*-Business aliases (URL slugs) or Yelp business IDs. Example: the-old-fashioned-madison
maxResultsPerSearchintegerNo10Maximum number of businesses to pull per search query/location combination. Each matching business's reviews are scraped.
languagestringNoenFilter reviews by language using ISO 639-1 codes. 24 languages supported: English, Spanish, French, German, Italian, Dutch, Portuguese, Russian, Japanese, Chinese (Simplified), Chinese (Traditional), Korean, Turkish, Arabic, Danish, Finnish, Norwegian, Swedish, Hebrew, Thai, Polish, Czech, Hungarian, Greek.
sortBystringNonewestSort order for reviews. Options: newest, oldest, yelp (Yelp default), highestRated, lowestRated, elites (elite reviews only).
maxReviewsintegerNo100Maximum number of reviews to fetch per business.
includeSensitiveDatabooleanYesfalseInclude reviewer personal information (name, location, profile URL, friend count, photo count, review count, elite year) in the output.

*Provide at least one of businessUrls, businessAliasesOrIds, or a searchQueries + searchLocations pair.

Output example

Yelp Business Review Scraper outputs data in two formats: a structured JSON dataset and a flattened CSV file. You can export the results in JSON, CSV, Excel, XML, or HTML directly from the Apify Console, or access them programmatically via the Apify API.

JSON dataset

The results are stored in a dataset which you can find in the Storage tab. Each item in the dataset represents a single review.

Example JSON output

{
"business_id": "RJNAeNA-209sctUO0dmwuA",
"business_alias": "the-old-fashioned-madison",
"business_url": "https://www.yelp.com/biz/the-old-fashioned-madison",
"review_id": "abc123",
"review_url": "https://www.yelp.com/biz/the-old-fashioned-madison?hrid=abc123",
"rating": 5,
"text": "Absolutely loved this place! The cheese curds were perfectly crispy and the Old Fashioned cocktail was top-notch. Great atmosphere right on the Capitol Square.",
"language": "en",
"date": "2024-08-12",
"images": [
{
"url": "https://s3-media0.fl.yelpcdn.com/bphoto/example1/o.jpg",
"caption": "Wisconsin cheese curds"
},
{
"url": "https://s3-media0.fl.yelpcdn.com/bphoto/example2/o.jpg",
"caption": null
}
],
"feedback": {
"useful": 4,
"funny": 1,
"cool": 2
},
"businessOwnerReply": null,
"user": null
}

Example JSON output with sensitive data enabled

When includeSensitiveData is set to true, the user field is populated with reviewer information:

{
"business_id": "RJNAeNA-209sctUO0dmwuA",
"business_alias": "the-old-fashioned-madison",
"business_url": "https://www.yelp.com/biz/the-old-fashioned-madison",
"review_id": "def456",
"review_url": "https://www.yelp.com/biz/the-old-fashioned-madison?hrid=def456",
"rating": 4,
"text": "Solid Wisconsin comfort food. The Friday fish fry is a must-try. Only downside is the long wait times on weekends - get there early!",
"language": "en",
"date": "2024-07-28",
"images": [],
"feedback": {
"useful": 2,
"funny": 0,
"cool": 1
},
"businessOwnerReply": {
"id": "reply789",
"text": "Thanks for the kind words! We're glad you enjoyed the fish fry. Pro tip: reservations help with the weekend rush!",
"date": "2024-07-30",
"user": {
"id": "owner123",
"name": "The Old Fashioned",
"role": "Business Owner",
"image": "https://s3-media0.fl.yelpcdn.com/bphoto/owner/ms.jpg"
}
},
"user": {
"id": "user456",
"url": "https://www.yelp.com/user_details?userid=user456",
"name": "Sarah M.",
"location": "Madison, WI",
"image": "https://s3-media0.fl.yelpcdn.com/photo/user456/ms.jpg",
"friendCount": 42,
"photoCount": 15,
"reviewCount": 87,
"eliteYear": 2023
}
}

CSV file

Scraped reviews are stored in a CSV file named reviews.csv. The file contains the following columns:

  • business_id: Yelp business ID
  • business_alias: Yelp business alias (URL slug)
  • business_url: Link to the Yelp business page
  • review_id: Unique review identifier
  • review_url: Link to the review on Yelp
  • rating: Star rating (1-5)
  • text: Full review text
  • language: Review language (ISO 639-1 code)
  • date: Review date
  • image_count: Number of images attached to the review
  • feedback_useful: Number of "useful" votes
  • feedback_funny: Number of "funny" votes
  • feedback_cool: Number of "cool" votes
  • reply_id: Business owner reply ID (if any)
  • reply_text: Business owner reply text (if any)
  • reply_date: Business owner reply date (if any)

When includeSensitiveData is enabled, the following columns are also included:

  • reply_user_name: Name of the business owner who replied
  • reply_user_role: Role of the replying user (e.g. "Business Owner")
  • user_id: Reviewer's Yelp user ID
  • user_url: Link to the reviewer's Yelp profile
  • user_name: Reviewer's display name
  • user_location: Reviewer's location
  • user_friend_count: Number of friends the reviewer has
  • user_photo_count: Number of photos the reviewer has posted
  • user_review_count: Number of reviews the reviewer has written
  • user_elite_year: Year the reviewer achieved Yelp Elite status (if applicable)

Example CSV output

business_id,business_alias,business_url,review_id,review_url,rating,text,language,date,image_count,feedback_useful,feedback_funny,feedback_cool,reply_id,reply_text,reply_date
RJNAeNA-209sctUO0dmwuA,the-old-fashioned-madison,https://www.yelp.com/biz/the-old-fashioned-madison,abc123,https://www.yelp.com/biz/the-old-fashioned-madison?hrid=abc123,5,"Absolutely loved this place! The cheese curds were perfectly crispy and the Old Fashioned cocktail was top-notch. Great atmosphere right on the Capitol Square.",en,2024-08-12,2,4,1,2,,,
RJNAeNA-209sctUO0dmwuA,the-old-fashioned-madison,https://www.yelp.com/biz/the-old-fashioned-madison,def456,https://www.yelp.com/biz/the-old-fashioned-madison?hrid=def456,4,"Solid Wisconsin comfort food. The Friday fish fry is a must-try. Only downside is the long wait times on weekends - get there early!",en,2024-07-28,0,2,0,1,reply789,"Thanks for the kind words! We're glad you enjoyed the fish fry. Pro tip: reservations help with the weekend rush!",2024-07-30

How much does it cost to scrape Yelp reviews?

Yelp Business Review Scraper uses per-result pricing: you only pay for the reviews you get.

$1.00 per 1,000 reviews - each extracted review counts as one result. Scrape 500 reviews from a business and you pay for 500 results, with no per-run or hidden compute fees.

Free trial: every new Apify account comes with $5 in free platform credits, no credit card required - enough to scrape 5,000 reviews at no cost.

Enterprise plans: for high-volume scraping across thousands of businesses on a regular basis, contact sales@beatanalytics.org for custom Enterprise pricing with dedicated support.

Use cases for Yelp review data

Yelp review data powers a range of business and research applications:

Sentiment analysis and NLP

Feed review text into NLP pipelines to measure customer sentiment, track how it shifts over time, and compare it across competitors. The structured star ratings paired with free-text reviews make Yelp one of the most-used datasets in academic sentiment research.

Reputation monitoring

Watch your own reviews to catch negative feedback early. Schedule runs to pull new reviews automatically and alert your team when low-rated reviews appear.

Competitive benchmarking

Compare your ratings, review volume, and recurring themes against direct competitors to see what customers praise elsewhere and where you already lead.

Product and service feedback mining

Extract feedback about specific products, menu items, or service aspects using keyword analysis or topic modeling. This is especially valuable for restaurants, hotels, and service businesses where reviews are detailed.

Review response strategy

Analyze how businesses in your industry respond to reviews: which get replies, how quickly owners answer, and what response styles correlate with better follow-up ratings.

Market research and location intelligence

Aggregate reviews across a geographic area to spot underserved neighborhoods, emerging food trends, or the impact of seasonal events. Pair with the Yelp Business Details Scraper for market context.

Academic research

Yelp review data appears across computer science, marketing, economics, and hospitality research, from sentiment model training to review authenticity detection and platform-economy studies.

Lead generation and sales intelligence

Identify businesses with low review scores or recurring complaints as leads for products that address those pain points, such as a restaurant technology company targeting listings whose reviews mention slow service or order errors.

Integrations and API access

You can integrate Yelp Business Review Scraper into your existing workflows using the Apify API, official SDKs, or no-code automation platforms.

Python

Use the Apify Python SDK to run the scraper and retrieve results programmatically:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"businessUrls": [
{"url": "https://www.yelp.com/biz/the-old-fashioned-madison"}
],
"language": "en",
"sortBy": "newest",
"maxReviews": 100,
"includeSensitiveData": False,
}
run = client.actor("beatanalytics/yelp-business-review-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

Use the Apify JavaScript SDK to integrate Yelp review scraping into your Node.js applications:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const input = {
businessUrls: [
{ url: "https://www.yelp.com/biz/the-old-fashioned-madison" }
],
language: "en",
sortBy: "newest",
maxReviews: 100,
includeSensitiveData: false,
};
const run = await client
.actor("beatanalytics/yelp-business-review-scraper")
.call(input);
const { items } = await client
.dataset(run.defaultDatasetId)
.listItems();
console.log(items);

No-code integrations

Yelp Business Review Scraper integrates with popular automation platforms so you can build workflows without writing any code:

  • Make (formerly Integromat) - connect Yelp review scraping to hundreds of other apps. Trigger scrapes on a schedule and send results to Google Sheets, Slack, email, or your CRM.
  • Zapier - create Zaps that run the scraper and process the results, for example a Slack notification whenever new 1-star reviews are detected.
  • Webhooks - configure a webhook URL to receive results automatically when a run completes.
  • Apify API - access all actor functionality via REST endpoints: schedule runs, retrieve datasets, and manage storage programmatically.

Frequently asked questions

Web scraping of publicly available data is generally legal in the United States, as affirmed by the 2022 US Ninth Circuit ruling in hiQ Labs v. LinkedIn, which established that scraping publicly accessible data does not violate the Computer Fraud and Abuse Act. Yelp reviews are publicly visible on the Yelp website without requiring a login or account.

That said, you should always review Yelp's Terms of Service and consult with legal counsel if you have concerns about your specific use case. The legality of web scraping can vary by jurisdiction and intended use. Apify provides the scraping infrastructure, but users are responsible for ensuring their use of scraped data complies with applicable laws and terms of service.

How to get Yelp reviews without the API?

Yelp Business Review Scraper is the easiest way to get Yelp reviews without the API. The official Yelp Fusion API has a hard limit of 3 reviews per business, which makes it impractical for any analysis requiring a complete dataset. This scraper bypasses that limitation entirely by extracting reviews directly from Yelp business pages.

To get started: create a free Apify account, open the Yelp Business Review Scraper, paste in your Yelp business URLs, and click Start. You will have all the reviews downloaded in JSON or CSV within minutes. See How to scrape Yelp reviews for a step-by-step guide.

How many reviews can I scrape?

There is no hard limit on the total number of reviews you can scrape. The scraper extracts all reviews available on each Yelp business page. You can control the number of reviews per business using the maxReviews parameter - set it to any number, or leave it at the default of 100.

For businesses with thousands of reviews, the scraper handles pagination automatically and fetches every page of reviews. If you need to scrape reviews from hundreds or thousands of businesses in a single run, the scraper processes them concurrently for efficient bulk extraction.

How much does it cost to scrape Yelp?

Yelp Business Review Scraper costs $1.00 per 1,000 reviews scraped. Every new Apify account includes $5 in free credits - enough to scrape 5,000 reviews at no cost. Contact sales@beatanalytics.org for Enterprise pricing on large-scale scraping operations. See How much does it cost to scrape Yelp reviews? for more details.

What is the difference between Yelp Details and Yelp Reviews scrapers?

The two scrapers extract different types of data from Yelp:

  • Yelp Business Review Scraper (this actor) extracts individual reviews - the review text, star ratings, dates, reviewer information, photos, and business owner replies.
  • Yelp Business Details Scraper extracts business-level information - the business name, address, phone number, hours, categories, average rating, photos, attributes, and more. It also supports finding businesses via search queries and locations.

The two are complementary. This Reviews scraper can find businesses by search query and location on its own, so a straightforward search-and-scrape run doesn't need the Details scraper. Reach for Details when you want to inspect richer business metadata first - filtering discovered businesses by average rating, review count, or category before deciding whose reviews to scrape.

Can I filter reviews by language?

Yes. The scraper supports filtering reviews by any of 24 languages: English, Spanish, French, German, Italian, Dutch, Portuguese, Russian, Japanese, Chinese (Simplified), Chinese (Traditional), Korean, Turkish, Arabic, Danish, Finnish, Norwegian, Swedish, Hebrew, Thai, Polish, Czech, Hungarian, and Greek.

Set the language parameter to the ISO 639-1 code for your desired language (e.g., en for English, es for Spanish, fr for French). Only reviews in the selected language will be returned.

How often is the data updated?

The scraper extracts live data from Yelp every time you run it. There is no caching or stale data - each run fetches the current state of reviews on the business page. You can schedule the scraper to run at any interval (hourly, daily, weekly) using Apify's built-in scheduling feature, ensuring your dataset always reflects the latest reviews.

What export formats are supported?

The scraper outputs data in two built-in formats: a JSON dataset (structured, nested data) and a CSV file (flattened for spreadsheets). From the Apify Console, you can additionally export the results as Excel (XLSX), XML, or HTML with a single click. The data is also accessible via the Apify API for programmatic access in any format.

Can I get reviewer information?

Yes. By default, reviewer personal information is excluded from the output for privacy. Enable the includeSensitiveData parameter (see Input parameters) to include reviewer details: display name, location, Yelp profile URL, friend count, photo count, total review count, and Yelp Elite status year.

When sensitive data is enabled, business owner reply information is also enriched with the owner's name and role.

Can I scrape reviews from multiple businesses at once?

Yes. You can add as many Yelp business URLs, aliases, or IDs as you need in a single run. The scraper processes all businesses concurrently, making bulk Yelp review download fast and efficient. There is no limit on the number of businesses per run.

Yelp Business Details Scraper

Extracts business-level information from Yelp - name, address, phone, hours, categories, average rating, review count, photos, and attributes - and can discover businesses via search queries and locations.

This Reviews scraper finds businesses by search query and location on its own, so a simple search-and-scrape run doesn't need the Details scraper. Reach for Details when you want to pre-filter a discovered set by rating, review count, or category before scraping reviews. A market research team studying a city's restaurant scene might:

  1. Run the Details scraper with queries like "restaurants", "cafes", and "bars" across several neighborhoods.
  2. Filter the results by rating, review count, or category to shortlist the most relevant businesses.
  3. Feed those business URLs into this Reviews scraper to extract every customer review.
  4. Analyze the review text for sentiment, recurring themes, and competitive strengths.

Yelp Photos Scraper

Downloads every photo and video from a Yelp listing - full-resolution image URLs, captions, categories, and video metadata across the entire gallery, not just the handful bundled with a business page. After scraping a business's reviews, run it on the same URLs to pair review content with imagery for visual analysis, menu extraction, or a richer listing profile.