Yelp Reviews Scraper avatar

Yelp Reviews Scraper

Pricing

from $3.00 / 1,000 reviews

Go to Apify Store
Yelp Reviews Scraper

Yelp Reviews Scraper

The Yelp Reviews Scraper extracts customer reviews from any Yelp business page, capturing full review text, star ratings, dates, review photos, and reviewer profiles with location and Elite status β€” plus optional business details β€” ideal for reputation monitoring and competitor research.

Pricing

from $3.00 / 1,000 reviews

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

πŸš€ Yelp Reviews Scraper

Extract customer reviews from any Yelp business page β€” with the full review text, star rating, date, reviewer profile and review photos. Paste one or more Yelp business URLs, choose how many reviews you want, and get clean structured data you can download as JSON, CSV or Excel, or pull straight from the Apify API.

Reviews are collected newest first by default, and pagination goes all the way back through a business's history β€” so you can pull the latest 20 for monitoring or the entire back catalogue for analysis. You can also sort by rating or Elite reviewers, and filter to a single review language.

✨ Features

  • πŸ’¬ Complete review text β€” the whole review, with paragraph breaks preserved, not a truncated snippet.
  • ⭐ Ratings and dates β€” star rating and review date on every record, ready for trend analysis.
  • πŸ‘€ Reviewer profiles β€” reviewer name, profile link, home city, Elite status and badge year, plus their total review and photo counts.
  • πŸ“Έ Review photos β€” direct image URLs for the photos attached to each review.
  • 🏒 Optional business details β€” name, overall rating, total review count, categories, address, phone and opening hours, in one record per business.
  • πŸ”€ Sorting β€” newest first, oldest first, highest or lowest rated first, or Elite reviewers first.
  • 🌍 Language filter β€” collect only the reviews written in a given language, and get a language code on every record.
  • πŸ” Deep pagination β€” pull the newest handful of reviews or thousands going back years, controlled by a single limit.
  • 🧱 Reliable at scale β€” built-in retries and rotation, so runs finish instead of returning half-empty datasets.

πŸ’‘ Why use Yelp Reviews Scraper?

  • Reputation monitoring β€” schedule a run every morning and get alerted to new 1- and 2-star reviews on your own locations.
  • Competitor research β€” see exactly what customers praise and complain about at every rival within a market.
  • Location benchmarking β€” compare ratings and review sentiment across dozens or hundreds of your own branches.
  • Market and product research β€” mine thousands of real customer opinions about a category before you enter it.
  • AI and sentiment analysis β€” feed full review text into an LLM or sentiment model instead of scraping it yourself.

πŸ› οΈ How to use Yelp Reviews Scraper

  1. Add Yelp business URLs β€” paste one or more links like https://www.yelp.com/biz/gary-danko-san-francisco. You can add as many as you want.
  2. Set the review limit β€” choose how many reviews to collect per business (50 by default).
  3. Pick a sort order β€” newest first by default; switch to lowest rated first to triage complaints, or oldest first to walk the full history.
  4. Optionally filter by language β€” enter a code like es or zh to collect only reviews written in that language.
  5. Optionally include business details β€” turn this on if you also want each business's rating, address, phone and hours.
  6. Run the Actor β€” start it from the Console, on a schedule, or via the API.
  7. Download your data β€” export the dataset as JSON, CSV, Excel or XML, or send it straight to Google Sheets, Slack, Zapier, Make or your own webhook.

πŸ“₯ Input

FieldTypeDescription
businessUrlsarrayRequired. Yelp business page URLs to scrape reviews from.
maxReviewsPerBusinessintegerMaximum reviews to collect per business. Default 50.
sortBystringdate_desc (default), date_asc, rating_desc, rating_asc, elites_desc or relevance_desc.
languagestringTwo-letter code, e.g. en, es, zh. Empty collects all languages.
includeBusinessDetailsbooleanAlso emit one record per business with its profile data. Default false.

Example input:

{
"businessUrls": [{ "url": "https://www.yelp.com/biz/gary-danko-san-francisco" }],
"maxReviewsPerBusiness": 50,
"sortBy": "date_desc",
"language": "",
"includeBusinessDetails": false
}

πŸ“Š Sample output data

Each review is one dataset item. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

[
{
"type": "review",
"businessUrl": "https://www.yelp.com/biz/gary-danko-san-francisco",
"businessName": "Gary Danko",
"reviewId": "0VwlqozA-cz0Dzj9phfTgQ-Aug 8, 2026",
"userId": "0VwlqozA-cz0Dzj9phfTgQ",
"author": "Minny Defends D.",
"authorUrl": "https://www.yelp.com/user_details?userid=0VwlqozA-cz0Dzj9phfTgQ",
"authorLocation": "San Francisco, CA",
"isElite": false,
"eliteBadge": null,
"authorReviewCount": null,
"authorPhotoCount": 7,
"rating": 5,
"date": "Aug 8, 2026",
"language": "en",
"text": "Absolutely loved our experience here. It is one of those upscale restaurants that you wouldn't mind going back again.\n\nThe restaurant and vibe is fabulous. You definitely feel special once you walk in, and we felt pampered with the service. The food was excellent.",
"photos": ["https://s3-media0.fl.yelpcdn.com/bphoto/zJQi-VIQLMVcmC4itungcw/348s.jpg"]
}
]

With Include business details enabled, each business also produces one record like this:

[
{
"type": "business",
"url": "https://www.yelp.com/biz/gary-danko-san-francisco",
"name": "Gary Danko",
"rating": 4.5,
"reviewCount": 6137,
"priceRange": "$$$$",
"phone": "(415) 749-2060",
"address": "800 N Point St, San Francisco, CA, 94109",
"city": "San Francisco",
"state": "CA",
"postalCode": "94109",
"country": "US",
"categories": ["Restaurants", "New American"],
"openingHours": ["Monday 17:00-22:00", "Thursday 17:00-22:00"],
"image": "https://s3-media0.fl.yelpcdn.com/bphoto/5dbjkeTld05HumeToIAhRQ/l.jpg"
}
]

πŸ“‹ Data fields

Review records

FieldTypeDescription
businessNamestringName of the reviewed business
businessUrlstringYelp URL of the business
reviewIdstringStable identifier for the review
authorstringReviewer's display name
authorUrlstringLink to the reviewer's Yelp profile
userIdstringYelp user ID of the reviewer
authorLocationstringReviewer's home city and state
isElitebooleanWhether the reviewer holds Yelp Elite status
eliteBadgestringElite badge label, e.g. Elite 26
authorReviewCountnumberHow many reviews the reviewer has written
authorPhotoCountnumberHow many photos the reviewer has posted
ratingnumberStar rating, 1–5
datestringDate the review was posted
textstringFull review text
languagestringLanguage code of the review, e.g. en, zh
photosarrayImage URLs of photos attached to the review

Business records (optional)

FieldTypeDescription
namestringBusiness name
ratingnumberOverall star rating
reviewCountnumberTotal number of reviews on Yelp
categoriesarrayYelp categories for the business
priceRangestringPrice level, e.g. $$$$
phonestringPhone number
addressstringFull street address
street, city, state, postalCode, countrystringAddress components
openingHoursarrayOpening hours per day
imagestringMain business photo

πŸ’° How much does it cost to scrape Yelp reviews?

This Actor uses pay per event pricing, so you only pay for the data you actually receive:

EventPrice
Review scraped$0.003
Business profile scraped$0.005

That works out to about $0.30 per 100 reviews and $3 per 1,000 reviews. A daily reputation check on 10 locations pulling the 20 newest reviews each costs roughly $0.60 per day.

New Apify accounts include $5 in free usage every month on the free plan, which is enough for around 1,600 reviews before you pay anything.

βš™οΈ Tips and advanced options

  • Keep the limit tight for monitoring. For daily checks, maxReviewsPerBusiness of 20–30 with the default newest-first sort is plenty β€” you pay nothing for history you already have.
  • Sort to find what you're looking for. rating_asc puts the complaints first, so a 20-review run surfaces every recent 1-star review instead of a random mix. date_asc walks a business's history from its very first review.
  • Filtering by language shrinks the bill. With language set, only reviews in that language are collected and charged β€” a business with 5,000 English and 16 Chinese reviews costs 16 reviews, not 5,000.
  • Batch your businesses. Put every location into one run rather than starting a run per URL; pages are fetched in parallel, so a batch finishes far faster than a queue of separate runs.
  • Leave business details off unless you need them. The review records already carry the business name and URL, so the extra profile record is only worth it when you want address, phone or hours.
  • Schedule it. Use Apify Schedules to run the Actor every morning and route new reviews to Slack, a Google Sheet or your own webhook via integrations.
  • Raise the run timeout for very large pulls. Businesses with thousands of reviews take a while; the default 1-hour timeout covers most runs, but a full multi-thousand-review pull may need more.

❓ FAQ

Is scraping Yelp reviews legal? This Actor collects only publicly available information β€” reviews that anyone can read on Yelp without logging in. Web scraping of public data is generally legal, but how you use the data matters. Do not use it in ways that breach applicable privacy laws such as GDPR or CCPA, and consult a lawyer if you plan to process personal data. See Is web scraping legal? for a longer discussion.

How many reviews can I get from one business? Yelp exposes a business's full review history, so you can page back through thousands of reviews, all the way to the earliest ones. Set maxReviewsPerBusiness to whatever you need.

In what order do reviews come back? Newest first by default, which is what you want for monitoring: a run with a limit of 50 gives you the 50 most recent reviews. Use sortBy to switch to oldest first, highest or lowest rated first, or Elite reviewers first β€” the order is kept all the way through pagination. Pages are fetched in parallel for speed, so rows in the dataset are close to that order but not exactly in it; sort by the date field if you need it exact.

Can I filter reviews by language? Yes β€” set language to a two-letter code such as es, zh or fr and only reviews written in that language are collected. Every record also carries a language field.

Can I filter reviews by rating or keyword? There is no rating or keyword filter, but sorting gets you most of the way: rating_asc returns the lowest-rated reviews first, so a small run captures the negative ones. For keywords, collect the reviews and filter the dataset afterwards β€” every record carries the full text.

Why is authorReviewCount sometimes empty? Yelp does not show reviewer statistics on every review card. Core fields β€” rating, date, review text, reviewer name and location β€” are present on every record.

Can I get reviews for many businesses at once? Yes. Add as many business URLs as you like to businessUrls; they are all processed in the same run and written to the same dataset.

Something is not working or I need a different field. Report it on the Issues tab of this Actor and it will be looked at. If you need a tailored version or a different Yelp dataset, custom solutions are available.

Start pulling real customer feedback from Yelp today! πŸš€