Yelp Reviews Scraper - Most Comprehensive
Pricing
from $0.04 / 1,000 reviews
Yelp Reviews Scraper - Most Comprehensive
🔥 ~$0.05/1K reviews 🔥 Scrape all reviews for any Yelp business. Full review text, ratings, author profiles, photos, reactions, owner replies. Accepts business URLs or aliases.
Pricing
from $0.04 / 1,000 reviews
Rating
0.0
(0)
Developer
Kai
Maintained by CommunityActor stats
0
Bookmarked
332
Total users
16
Monthly active users
4 days ago
Last modified
Categories
Share
Yelp Reviews Scraper
Collect Yelp reviews and business details as structured data. Start with business URLs, aliases, or encrypted business IDs.
Use it to analyse review text, compare ratings, monitor customer feedback, or collect Yelp business profiles with their reviews.
Collect reviews for a business
Use a business URL
Run one business by URL:
{"businesses": ["https://www.yelp.com/biz/gary-danko-san-francisco"]}
Use an alias or business ID
Use an alias or a 22-character encrypted business ID:
{"businesses": ["WavvLdfdP6g8aZTtbBQHTw"],"maxReviewsPerBusiness": 10}
Filter and sort reviews
{"businesses": ["gary-danko-san-francisco"],"sortBy": "RATING_ASC","ratings": ["1", "2"],"maxReviewsPerBusiness": 50}
Search review text
{"businesses": ["gary-danko-san-francisco"],"query": "service","maxReviewsPerBusiness": 20}
Request a language view
Request Yelp's German language view and translations:
{"businesses": ["gary-danko-san-francisco"],"languageCode": "de","maxReviewsPerBusiness": 20}
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
businesses | string[] | [] | Yelp business URLs, aliases, or 22-character encrypted business IDs. Add at least one entry to collect data. Requested targets are processed in input order, including repeated references. |
sortBy | string | DATE_DESC | DATE_DESC, DATE_ASC, RATING_DESC, RATING_ASC, or ELITES_DESC. |
ratings | string[] | ["1","2","3","4","5"] | Zero or more star ratings from "1" through "5". An empty selection means all ratings, and repeated values are accepted. |
maxReviewsPerBusiness | integer | 20 | Maximum saved reviews per business. Use 0 to remove the Actor-set cap. |
query | string or null | "" | Optional review search text. null is also accepted and treated as no query. Search results use Yelp's relevance order. |
languageCode | string | "en" | Yelp language code such as en, de, or zh. Blank strings are passed to Yelp unchanged. |
proxyConfiguration | object | {"useApifyProxy":true} | Connection configuration accepted by the Actor. |
A raw 22-character value that contains letters, numbers, _, or - is interpreted as an encrypted business ID. Use the full Yelp URL if a business alias has that exact shape.
Complete input reference example
Where results are saved
The default dataset stores reviews in Yelp's returned order. The Actor does not
re-sort the response, and it preserves repeated rows. The businesses dataset
stores one business profile for each resolved target, including a valid business
that has no matching reviews.
Review dataset
Each review item includes business identity, rating, text, language and time values, public author data, feedback counts, media, business replies, review history, tags, and the collection time.
Review fields
| Root field | Type | Fixed child fields and meaning |
|---|---|---|
id | string | Opaque review ID. |
businessAlias, businessName, businessEncId | string | Resolved business identity. businessEncId is opaque. |
rating | number | Star rating. |
text | string | Review text. Search results can include source highlight markers. |
translatedText | string or null | Source-provided translation. |
language | string | Source language code. |
createdAt, localDateTime | string or null | UTC and business-local date-time values. |
author | object | id, displayName, and displayLocation are strings; review, friend, and photo counts are numbers; eliteYear and profilePhotoUrl are strings or null; isEliteAllStar is boolean. |
feedback | object | usefulCount, funnyCount, and coolCount are numbers. Missing source counts become 0. |
reactions | object[] | Each item has string type and number count. Only reactions with a count greater than zero are saved. |
photos | object[] | Each item has string id, url, and caption; number helpfulCount and likeCount; nullable number width and height; nullable string uploadedAt; string[] keywords; and nullable uploadingUser with string id and displayName. |
videos | object[] | Each item has string id, url, and caption, plus number helpfulCount. |
ownerReply | string or null | Public business reply text. |
previousReviewIds | string[] | Opaque IDs for earlier reviews in the same history. |
tags | object | checkInCount is a number; reservation provider is a string or null; the other child fields are booleans. |
expertRecognition | object or null | displayName is a string and reviewCount is a number. |
userSpecifiedTimeOfExperience | string or null | Source-provided experience time. |
scrapedAt | string | UTC time when the Actor saved the record. |
Optional fields and arrays depend on the review. translatedText, ownerReply, expertRecognition, and userSpecifiedTimeOfExperience can be null. reactions, photos, videos, and previousReviewIds can be empty. Photo width, height, uploadedAt, and uploadingUser fields can be null; keywords is an array.
Saved review example
These selected, unchanged fields came from one saved result on 2026-07-30. This is a partial sample. The reference above covers the omitted fields.
{"id": "4c5hsfXxkQnRs_gierUmvQ","businessAlias": "gary-danko-san-francisco","businessName": "Gary Danko","businessEncId": "WavvLdfdP6g8aZTtbBQHTw","rating": 5,"text": "Amazing Food! Service was superb! My wife and I really enjoy our Anniversary dinner! It was our first visit to SF in a long a time. We brought our daughter and we feel in love of the food. Very beautiful setting inside restaurant.","translatedText": null,"language": "en","createdAt": "2026-07-27T21:02:17Z","localDateTime": "2026-07-27T14:02:17-07:00","feedback": {"usefulCount": 0,"funnyCount": 0,"coolCount": 0},"reactions": [],"photos": [],"ownerReply": null,"scrapedAt": "2026-07-30T05:20:11.595Z"}
Business dataset
Each business item includes its identity, rating and review counts, language
counts, photo and category data, status, location, contact fields, hours, public
page sections, and collection time. Optional page sections can be null.
Business fields
The tables below cover every business root and each fixed child shape. A field marked as open can contain source-defined child keys in addition to the fixed outer field.
| Root field | Type | Meaning or fixed child fields |
|---|---|---|
id, alias, name | string | Business identity. id is opaque. |
rating, reviewCount | number | Overall rating and review total. |
reviewCountsByRating | number[] | Counts for ratings 1 through 5 in that order. |
reviewCountsByLanguage | object[] | Each item has string language and number count. |
primaryPhotoUrl | string or null | Primary business image. |
categories | object[] or null | Each item has string alias and title. Direct-ID input can make this field null. |
isClosed, isClaimed, isYelpAdvertiser, isMultiloc, hasStorefrontAddress | boolean or null | Page-derived business status flags. |
closedUntil | string or null | Source-provided closure value. |
yearEstablished | number or null | Page-derived establishment year. |
location | object or null | address is an open object or null; neighborhoods is a string array; timezone is a string or null. |
phoneNumber, meteredPhoneNumber | string or null | Page-derived contact values. |
operationHours | open object or null | Source-defined hours data. |
priceRange | string or null | Source display value. |
specialties, summary | string or null | Source descriptive text. |
alternateNames | string[] or null | Other business names. |
ambiance, yelpMenu, serviceArea, searchStats | open object or null | Source-defined data groups. |
logo | string or null | Logo value. |
externalResources | object or null | menuUrl, websiteUrl, and orderUrl; each is a string or null. |
messaging, onlineOrdering | boolean or null | Availability flags. |
media | object or null | photoCount and videoCount are numbers. |
notRecommendedReviewCount | number or null | Source count. |
reviewHighlights | string[] or null | Source highlight text. |
healthInspections, verifiedLicenses | open object[] or null | Source-defined records. |
attributes | object[] or null | Each item has string name and alias, plus boolean isActive. |
menuVerbiage | object or null | noun and link are strings. |
consumerAlert | object or null | alertType and isHarsh; both can be null. |
bizOwnerProfile | object or null | displayName, role, bio, and photoUrl; each can be null. |
dataFreshness | object or null | verificationType and label; each can be null. |
isCommunityQuestionsEnabled, isConnectEnabled, isItemListSchemaEnabled | boolean or null | Feature flags. |
communityQuestionCount, postCount | number or null | Source counts. |
containerBusiness | string or null | Opaque parent-business value. |
categoryGroups | object or null | isRFN and isPLAH are booleans. |
associatedSearches | object[] or null | Each item has string phrase and url. |
internalLinks | object or null | Its three child fields are arrays of objects with string text and url. |
jobPricing | object or null | isEligible is boolean. |
jobs | object or null | isVerifiedByBizOwner is boolean; offeredJobs is an array of open source objects. |
authoritativeAttributes | object[] or null | Each item has string alias and displayText, plus boolean boolValue. |
videoCarouselItems | object[] or null | Each item has string videoUrl; thumbnailUrl and caption are strings or null. |
reviewSnippets | object[] or null | Each item has string id and text. |
categoryDetails | object[] or null | Each item has string alias, title, and encid, plus string or null rootAlias. |
countryCode | string or null | Country code. |
formattedPhone | string or null | Formatted contact value. |
formattedAddress | object or null | addressLine1, city, regionCode, and postalCode are strings. |
isCurrentlyOpen | boolean or null | Current open-state value. |
regularHoursRaw | object[] or null | Each item has string dayOfWeekShort, string[] hours, and number[][] rawMinutes. |
upcomingSpecialHours | open object[] or null | Source-defined special-hour records. |
photoTabs | object[] or null | Each item has string label and alias, plus number count. |
businessOwnerVideo | object or null | videoUrl is a string; thumbnailUrl is a string or null. |
categoryAncestry | object[] or null | Each item has string alias and title, plus ancestry objects with string alias and title. |
logoHasPurchased | boolean or null | Source logo flag. |
regularHoursLastUpdated | string or null | Source update time. |
costGuides | object[] or null | Each item has string categoryAlias and links with string text and url. |
partnerData | object or null | ctaType is a string; linkoutUrl is a string or null. |
coordinates | object or null | latitude and longitude are numbers. Direct-ID input can make this field null. |
scrapedAt | string | UTC time when the Actor saved the record. |
Optional page-derived fields can be null. upcomingSpecialHours and costGuides can be empty arrays. businessOwnerVideo, regularHoursLastUpdated, and partnerData.linkoutUrl can be null.
Saved business example
These selected, unchanged fields came from the matching saved business record. This is a partial sample. The reference above covers the omitted fields.
{"id": "WavvLdfdP6g8aZTtbBQHTw","alias": "gary-danko-san-francisco","name": "Gary Danko","rating": 4.5,"reviewCount": 6133,"reviewCountsByRating": [124, 216, 484, 1095, 4219],"reviewCountsByLanguage": [{"language": "en","count": 6135},{"language": "zh","count": 2},{"language": "de","count": 1}],"primaryPhotoUrl": "https://s3-media0.fl.yelpcdn.com/bphoto/5dbjkeTld05HumeToIAhRQ/60s.jpg","coordinates": {"latitude": 37.805823482811675,"longitude": -122.42060564460563},"countryCode": "US","formattedAddress": {"addressLine1": "800 N Point St","city": "San Francisco","regionCode": "CA","postalCode": "94109"},"isCurrentlyOpen": false,"scrapedAt": "2026-07-30T05:20:11.582Z"}
Known limits
- Yelp controls search matching and relevance. A term without an exact text match can still return broader results.
- Search can ignore
sortByand the rating filter. Combining search with a non-English language can also produce no matches. - Translation and optional enrichment fields depend on what Yelp returns for the business and language.
maxReviewsPerBusiness: 0removes the Actor-set review cap.- Direct-ID input can omit fields that are available only on the public business page.
- Yelp can change or temporarily restrict its public responses.