Yelp Reviews Scraper by Business ID
Pricing
from $1.00 / 1,000 results
Yelp Reviews Scraper by Business ID
Extract Yelp reviews by business ID with full review text, ratings, dates, reviewer data, reactions, owner responses, pagination, and incremental monitoring.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
SearchShark Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
β Yelp Reviews Scraper by Business ID
Yelp Reviews Scraper by Business ID lets you collect structured Yelp reviews for one or more businesses using their 22-character Yelp business IDs.
Monitor new customer feedback, analyze competitors, track reputation changes, collect review history, and automate review-based workflows without manually opening Yelp business pages.
- β Collect Yelp reviews: extract ratings, full review text, dates, reviewer information, reactions, and owner responses
- π Monitor reputation: collect only reviews published since your previous run
- πͺ Track multiple businesses: process multiple Yelp business IDs independently in one Actor run
- π Run incremental monitoring: stop automatically when a previously collected review is encountered
- π Collect reviews after a date: avoid repeatedly downloading old review history
- π§Ή Avoid duplicates: reviews are deduplicated using Yelp review IDs
- π‘ Protect business identity: mismatched business IDs are rejected instead of attaching reviews to the wrong business
- β‘ Automate workflows: export structured results to Apify Dataset, API, integrations, AI workflows, or downstream applications
π¦ What data does Yelp Reviews Scraper extract?
Each Dataset row represents one Yelp review together with useful business context.
| π Yelp business ID | πͺ Business name |
| π Business alias | β Business rating |
| π¬ Business review count | πΌ Business photo |
| π Review counts by rating | π Review counts by language |
| π Review ID | β Review rating |
| π Full review text | π Review date β UTC |
| π Review date β local | π Useful count |
| π Funny count | π Cool count |
| π€ Reviewer ID | π Reviewer name |
| π Reviewer review count | π· Reviewer business photo count |
| πΌ Reviewer profile photo | β€οΈ Review reactions |
| π¬ Business owner response |
Missing fields are returned as
nullwhere applicable. The Actor does not invent review or business information that is not returned by Yelp.
π Features
Yelp Reviews Scraper by Business ID is designed for review monitoring, reputation intelligence, competitor analysis, and automation.
- Multiple Yelp business IDs: process multiple businesses in one Actor run
- 22-character ID validation: malformed IDs are rejected before collection
- Business identity verification: returned review data is checked against the requested Yelp business ID
- Newest reviews first: reviews are collected in reverse chronological order
- Automatic cursor pagination: continue through review history without manually handling pages
- Exact review limits: stop at the requested maximum for each business
- Incremental review collection: use a previously collected review ID as a stopping point
- Date-based collection: stop when reviews become older than your selected date
- Review deduplication: duplicate review IDs are not emitted twice
- Per-business failure protection: one problematic business does not discard successful results from other businesses
- Structured Dataset output: every review follows a predictable schema
- Business context included: each review contains the relevant business name, rating, review count, alias, and business ID
- Dedicated Dataset views: inspect review data or business context directly in Apify Console
- HTTP-first architecture: normal review collection does not require browser automation
β¬οΈ Input
You can configure Yelp Reviews Scraper directly from the Apify Console or send the input programmatically through the Apify API.
π Yelp business IDs
Enter one or more 22-character Yelp business IDs.
Example:
WavvLdfdP6g8aZTtbBQHTw
Multiple businesses can be entered:
WavvLdfdP6g8aZTtbBQHTwANOTHER_YELP_ID_HEREANOTHER_YELP_ID_HERE
Each business is processed independently.
Duplicate business IDs are automatically removed before processing.
Business ID format
A Yelp business ID used by this Actor is expected to contain exactly:
22 characters
using letters, numbers, underscores, or hyphens.
For example:
WavvLdfdP6g8aZTtbBQHTw
This Actor currently accepts business IDs only. Yelp business URLs, aliases, keywords, and locations are not accepted as substitutes.
π’ Maximum reviews per business
Set the maximum number of reviews to collect for each Yelp business ID.
Minimum: 1Default: 100
For example:
Business IDs:Business ABusiness BBusiness CMaximum reviews per business:100
can return up to:
100 reviews for Business A+100 reviews for Business B+100 reviews for Business C=300 Dataset rows
The requested number is a maximum, not a guarantee.
The Actor may return fewer reviews when:
- the business has fewer available reviews
reviewsAfterDateis reachedstopAtReviewIdis reached- pagination naturally ends
- the business cannot be safely validated
- a request for that business fails
π Only reviews after this date
Use:
reviewsAfterDate
to collect only reviews newer than a selected date.
Example:
2026-07-01
The Actor processes reviews from newest to oldest.
When it reaches a review at or before the selected cutoff date:
review date <= reviewsAfterDate
collection for that business stops.
The review that reaches the cutoff is not included.
Example
Suppose Yelp returns:
2026-07-202026-07-152026-07-042026-06-252026-06-10
and your input is:
reviewsAfterDate:2026-07-01
the Actor keeps:
2026-07-202026-07-152026-07-04
and stops when it reaches:
2026-06-25
This can significantly reduce unnecessary requests when you only need recent review activity.
π Stop at previously collected review ID
Use:
stopAtReviewId
when you already collected reviews in a previous run.
Enter the Yelp review ID of the review where collection should stop.
Example:
BVCWqzKpzRnioLYI455kPw
When the Actor encounters this review:
stopAtReviewId
it immediately stops processing older reviews for that business.
The matching review itself is not included again.
Incremental monitoring example
Your previous run returned:
Newest review:NEW_REVIEW_ASecond review:NEW_REVIEW_BThird review:PREVIOUS_REVIEW_ID
For the next run, set:
stopAtReviewId:PREVIOUS_REVIEW_ID
The Actor returns:
NEW_REVIEW_ANEW_REVIEW_B
and stops before emitting:
PREVIOUS_REVIEW_ID
This makes stopAtReviewId useful for:
- daily review monitoring
- scheduled reputation tracking
- multi-location review feeds
- CRM synchronization
- notification systems
- incremental data pipelines
π§ͺ Example input
{"businessIds": ["WavvLdfdP6g8aZTtbBQHTw"],"maxReviewsPerBusiness": 100,"reviewsAfterDate": "","stopAtReviewId": ""}
Incremental example
{"businessIds": ["WavvLdfdP6g8aZTtbBQHTw"],"maxReviewsPerBusiness": 100,"reviewsAfterDate": "","stopAtReviewId": "BVCWqzKpzRnioLYI455kPw"}
Date-based example
{"businessIds": ["WavvLdfdP6g8aZTtbBQHTw"],"maxReviewsPerBusiness": 500,"reviewsAfterDate": "2026-07-01","stopAtReviewId": ""}
β¬οΈ Output
Results are stored in the Actor's default Apify Dataset.
You can access them from:
OutputStorageApify APIIntegrations
Each Dataset row represents:
One Yelp review for one confirmed Yelp business ID.
Business context is included directly with every review so exported CSV, JSON, Excel, and API results remain easy to use.
π Example result
{"businessId": "WavvLdfdP6g8aZTtbBQHTw","businessAlias": "gary-danko-san-francisco","businessName": "Gary Danko","businessRating": 4.5,"businessReviewCount": 6138,"businessPrimaryPhotoUrl": "https://...","businessReviewCountsByRating": [],"businessReviewCountsByLanguage": [],"reviewId": "60ntr31UWUsUDjrIlozZEQ","reviewRating": 5,"reviewText": "Full Yelp review text...","reviewDateUtc": "2026-09-03T05:39:14Z","reviewDateLocal": "2026-09-02T22:39:14","usefulCount": 0,"funnyCount": 0,"coolCount": 0,"reviewerId": "REVIEWER_ID","reviewerName": "roger t.","reviewerReviewCount": 123,"reviewerBusinessPhotoCount": 4,"reviewerProfilePhotoUrl": "https://...","reactions": [{"type": "HELPFUL","count": 0},{"type": "THANKS","count": 0},{"type": "LOVE_THIS","count": 0},{"type": "OH_NO","count": 0}],"ownerResponse": null}
β Review fields
The main review fields are:
reviewIdreviewRatingreviewTextreviewDateUtcreviewDateLocal
reviewId is also used internally to prevent duplicate review rows during pagination.
π€ Reviewer fields
When available, reviewer information includes:
reviewerIdreviewerNamereviewerReviewCountreviewerBusinessPhotoCountreviewerProfilePhotoUrl
Not every reviewer exposes every field.
Missing information may therefore appear as:
null
β€οΈ Yelp reactions
Reviews may contain Yelp reaction data.
The Actor returns reactions as structured objects:
[{"type": "HELPFUL","count": 2},{"type": "THANKS","count": 1}]
Reaction types observed by the Actor include:
HELPFULTHANKSLOVE_THISOH_NO
Reaction availability and counts vary by review.
π¬ Business owner responses
When Yelp provides a public business-owner response, it is returned in:
ownerResponse
If a review has no owner response:
"ownerResponse": null
This makes the output useful for workflows such as:
- identifying unanswered negative reviews
- response-rate analysis
- reputation-management dashboards
- customer-service audits
πͺ Business context
Each review also contains business-level fields:
businessIdbusinessAliasbusinessNamebusinessRatingbusinessReviewCountbusinessPrimaryPhotoUrlbusinessReviewCountsByRatingbusinessReviewCountsByLanguage
The Apify Output page includes a separate:
Business context
view to make these fields easier to inspect.
π‘ Business ID validation
Business identity is treated as a critical part of the scraper.
The Actor does not blindly trust the requested ID.
When review records are returned, the Actor verifies that their embedded Yelp business identity matches the business ID supplied by the user.
If Yelp returns review data for a different business, the Actor rejects that business instead of incorrectly labeling the reviews.
Example:
Requested ID:BUSINESS_ID_AReview records belong to:BUSINESS_ID_B
Result:
Business failed0 incorrect review rows stored
Other valid business IDs in the same run continue processing.
This protects Dataset quality when:
- an ID was mistyped
- an ID is invalid
- Yelp returns inconsistent data
- a business identifier cannot be safely confirmed
π§Ή Review deduplication
Reviews are deduplicated by:
reviewId
within each business collection.
If the same review appears again during pagination, it is not added to the Dataset twice.
This prevents repeated review records from inflating your results.
π Pagination
Yelp Reviews Scraper automatically follows Yelp's review pagination cursors.
The Actor processes:
Page 1βPage 2βPage 3β...
until a stopping condition is reached.
Collection stops when:
- π― Maximum reviews per business reached
- π
stopAtReviewIdencountered - π
reviewsAfterDatereached - π No reviews returned
- π Yelp reports no next page
- β οΈ No next cursor is available
- π A previously seen cursor repeats
The scraper does not continue sending unnecessary requests once a stopping condition is reached.
β‘ Performance
The scraper uses an HTTP-first architecture.
Instead of launching a full browser for normal review collection, it requests Yelp review data directly through the web transport used for the review feed.
This generally provides:
Lower memory useFaster startupLower compute requirementsLess browser overheadEfficient pagination
A consistent network session is maintained while processing each individual business.
π‘ Reliability
Each business ID is processed independently.
For example, if your input contains:
Business ABusiness BBusiness C
and Business B cannot be safely processed:
Business A β results preservedBusiness B β failure loggedBusiness C β processing continues
A single failed business therefore does not automatically discard successful review data from the rest of the run.
The Actor also protects against:
- duplicate reviews
- repeated pagination cursors
- invalid input formats
- mismatched business identities
- non-JSON responses
- unsuccessful HTTP responses
- detected blocked requests
- malformed GraphQL responses
π API & integrations
Yelp Reviews Scraper by Business ID can be used programmatically through the Apify API.
You can connect the resulting review data to workflows such as:
- Google Sheets
- Make
- Zapier
- CRMs
- Slack notifications
- reputation-management dashboards
- internal APIs
- data warehouses
- sentiment-analysis pipelines
- AI agents
- MCP workflows
Each Actor run stores structured review results in the default Dataset, making them straightforward to consume from another application.
π‘ Example use cases
π Reputation monitoring
Run the Actor regularly for your own business locations.
Save the newest review ID from the previous run and use it as:
stopAtReviewId
during the next run.
The Dataset then contains only reviews that appeared since your previous collection.
Use this for:
Daily review monitoringNew-review alertsCustomer service workflowsReputation dashboards
πͺ Multi-location review monitoring
Provide multiple Yelp business IDs:
Location A IDLocation B IDLocation C IDLocation D ID
The Actor processes each location independently.
You can then compare:
RatingsReview volumeRecent customer feedbackReaction activityOwner responses
across locations.
π Competitor review research
Provide known Yelp business IDs for your competitors and collect their newest reviews.
Analyze:
Common complaintsCustomer praiseService quality patternsRating trendsReviewer sentimentOwner-response activityRecurring operational problems
π€ Sentiment and NLP analysis
Export reviewText into:
Sentiment modelsTopic clusteringLLM pipelinesComplaint categorizationFeature extractionCustomer-experience analytics
Because each review has a stable:
reviewId
incremental analysis pipelines can avoid processing the same review repeatedly.
π¬ Owner-response auditing
Use:
reviewRatingownerResponsereviewDateUtc
to identify reviews that may require attention.
For example:
1-star review+ownerResponse = null
can be routed into a reputation-management workflow.
β οΈ Current limitations
The current version focuses specifically on reliable review collection from known Yelp business IDs.
It does not currently perform:
Keyword + location Yelp searchBusiness discoveryYelp URL inputYelp alias inputAutomatic URL-to-ID resolutionFull Yelp business profile extractionStreet address extractionPhone extractionBusiness website extractionLatitude / longitude extractionOpening-hours extractionCategory extractionPhoto gallery extractionSearch-result rankingGrid or geographic crawlingBrowser-based Yelp discoveryCAPTCHA solvingAnti-bot challenge bypass
These features are intentionally outside the current product scope.
If you need business discovery, you must first obtain the Yelp business IDs from another source or workflow.
β FAQ
What is a Yelp business ID?
A Yelp business ID is the business identifier used by this Actor to request reviews for a specific Yelp business.
The current Actor expects a:
22-character business ID
Example:
WavvLdfdP6g8aZTtbBQHTw
Can I enter a Yelp business URL?
Not in the current version.
The Actor currently accepts:
businessIds[]
only.
It does not currently convert:
https://www.yelp.com/biz/...
into a Yelp business ID.
Can I search Yelp by keyword and location?
No.
This Actor is intentionally an ID-first review scraper.
Inputs such as:
plumberLos Angeles, California
are not supported.
The Actor is designed for users who already know which Yelp businesses they want to monitor.
Can I scrape multiple businesses in one run?
Yes.
Add multiple values to:
businessIds
Each business is processed independently.
How many reviews can I collect?
Use:
maxReviewsPerBusiness
to control the maximum for each business.
The default is:
100 reviews per business
You can request more when needed.
Actual output may be lower if:
The business has fewer reviewsreviewsAfterDate is reachedstopAtReviewId is reachedPagination endsThe business fails validation
Are reviews returned newest first?
Yes.
The collection workflow processes Yelp reviews from newest to oldest.
This is what makes:
reviewsAfterDate
and:
stopAtReviewId
efficient for incremental monitoring.
How does incremental review monitoring work?
After a successful run, save the newest review ID you have already processed.
On the next run, supply that ID as:
stopAtReviewId
The Actor collects newer reviews and stops once it encounters the previously processed review.
The stop-marker review itself is not returned again.
Which is better: reviewsAfterDate or stopAtReviewId?
Use:
reviewsAfterDate
when you want all reviews newer than a calendar date.
Use:
stopAtReviewId
when you want to continue precisely from a previous collection.
For recurring monitoring workflows, stopAtReviewId is usually the more exact stopping marker.
Why did a business fail with "Business ID mismatch"?
The Actor validates the identity attached to returned review records.
If you request:
BUSINESS_ID_A
but Yelp returns reviews that belong to:
BUSINESS_ID_B
the Actor refuses to store those reviews under the wrong business ID.
This behavior protects Dataset accuracy.
Why is ownerResponse null?
Not every Yelp review has a public response from the business.
When no public owner response is available:
"ownerResponse": null
is expected.
Why are some reviewer fields null?
Yelp does not provide every reviewer field for every review.
The Actor deliberately returns:
null
when information is unavailable rather than inventing values.
Can I use this Actor through an API?
Yes.
Every Actor can be started through the Apify API, and the resulting Dataset can be retrieved programmatically.
This makes the scraper suitable for:
Scheduled monitoringReview ingestion pipelinesCRM synchronizationAI analysisDashboardsNotificationsInternal applications
Can I export the results?
Yes.
Apify Dataset results can be exported in supported formats such as:
JSONCSVExcelXMLHTML
Is a browser required?
Not for the normal review workflow.
The Actor uses an HTTP-first transport for standard review collection.
This reduces the compute and memory overhead associated with full browser automation.
Does the Actor scrape full Yelp business profiles?
No.
The current product only exposes business fields that are available and confirmed through the review collection response.
It does not currently advertise complete Yelp profile extraction.
π§ Recommended workflow
For recurring review monitoring:
First run
businessIds:your Yelp business IDsmaxReviewsPerBusiness:100
Collect the current reviews.
Save the newest:
reviewId
that your system has processed.
Future runs
Use that saved value as:
stopAtReviewId
The Actor can then stop as soon as it reaches review data your system already knows about.
For date-based workflows instead, use:
reviewsAfterDate
Example:
2026-09-01
This keeps scheduled runs smaller and avoids repeatedly collecting unnecessary historical reviews.
π¬ Feedback & support
Found a bug or have a feature request?
Use the Actor's Issues tab on Apify.
Useful future additions may include:
Business URL inputAlias-to-ID resolutionMore business summary fieldsImproved monitoring workflowsAdditional review filtersBusiness-level summary outputWebhook-oriented review alerts
βοΈ Responsible use
Use this Actor responsibly and ensure your collection and use of Yelp data complies with applicable laws, website terms, and your own contractual obligations.
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Yelp.
π Yelp review data ready for monitoring and automation
Enter your Yelp business IDs, choose how many reviews you need, run the Actor, and receive structured Yelp review data ready for reputation monitoring, competitor research, APIs, AI analysis, and automation.