Yelp Scraper: Review Reputation Monitor
Pricing
from $0.45 / 1,000 business assessments
Yelp Scraper: Review Reputation Monitor
Monitor public Yelp businesses with URLs, or find them with one category and location query. Get structured profiles, review evidence, sentiment themes, attention signals, repeat-run changes, and competitor comparisons.
Pricing
from $0.45 / 1,000 business assessments
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
🧭 Yelp reputation monitoring for local businesses
Yelp Reputation Monitor is for local business owners, reputation teams, agencies, and multi-location operators who need to review public Yelp locations. It returns structured business profiles, review evidence, sentiment and themes, attention signals, repeat-run changes, and competitor comparisons. This gives your team one dataset to review instead of checking each page by hand.
Use cases
- Track changes across a list of public locations with Yelp Reputation Monitoring.
- Check rating signals for a public Yelp business with Yelp Rating Monitoring.
- Review public Yelp feedback for themes and sentiment with Yelp Review Analysis.
- Find business profiles from public Yelp pages with Yelp Business Scraper.
- Compare an anchor location with competitor URLs using Yelp Competitor Analysis.
📊 Yelp business reputation data
Each dataset row represents one public Yelp business location. Core fields include the business name, public page URL, Yelp business ID, address, categories, rating, review count, monitoring history, changes, and incidents. Depending on the source data and run inputs, a row can also include public profile details, reviews, review analysis, attention ranking, competitor comparison, and shared complaint themes.
The review analysis is based on the public review evidence found for the business. Rows with review analysis report the number of public reviews found and analyzed and any sample limitation, so you can judge those results in context.
▶️ Run a Yelp reputation check
Choose Business URLs for known locations, or choose Category and location for one Yelp discovery query. The first eligible occurrence of a discovered business is saved. If the same source business appears again through another submitted URL or discovery path, later matches are ignored.
Review evidence is on by default. Public profile details are included when Yelp provides them. Add competitor URLs when you want a comparison within the submitted set. Repeat the same watchlist in later runs to build history and see material changes. Early runs can have limited history because there are fewer earlier observations to compare.
To keep a run smaller when you need only a sample, set Maximum locations to a smaller number. Leave it empty to process every available location until the source is exhausted.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
findBusinessesBy | string | Chooses businessUrls for known locations or categoryLocation for one category and location query. |
businessUrls | array of objects | Public Yelp business page URLs to track. Required when findBusinessesBy is businessUrls. |
businessUrls[].url | string | One public Yelp business page URL. |
competitorUrls | array of objects | Optional public Yelp pages to compare with the first business URL. Supplied competitors are also tracked. |
competitorUrls[].url | string | One public Yelp business page URL for the comparison set. |
category | string | One category for the Yelp discovery query, such as restaurants or dentists. Required when findBusinessesBy is categoryLocation. |
location | string | One city, area, or address for the Yelp discovery query. Required when findBusinessesBy is categoryLocation. |
includeReviewEvidence | boolean | Returns public review records with full text, star rating, date, language, and available reviewer context. |
maxLocations | integer | Stops after this many business locations. Leave it empty to process every available location until the source is exhausted. |
How the choices work
Use only the fields for the selected findBusinessesBy choice. The first URL in businessUrls is the anchor when competitor URLs are supplied. A category and location run makes one discovery query, not several independent queries.
Successful input example
This is the smallest common input from a successful current-beta run.
{"findBusinessesBy": "businessUrls","businessUrls": [{"url": "https://www.yelp.com/biz/aba-austin-4"}],"includeReviewEvidence": false}
🧾 Output
Each dataset row is one public Yelp business location. Public profile details are included when Yelp provides them. Review evidence and review analysis appear when includeReviewEvidence is on. Monitoring, incidents, attention, shared themes, and competitor comparison appear when the run finds those signals. A row can contain several of these optional groups.
The current beta runs show three useful row shapes:
- A core row contains business details, public profile details, monitoring data, and incidents.
- A review row adds public reviews, review analysis, and any attention or shared-theme signals found in the run.
- A comparison row adds the position and pressure signals for submitted competitor URLs.
The tables below use readable dotted paths for nested fields. Each table is complete for its row shape. Optional fields may be absent when Yelp does not return the related data.
Run output
| Field | Type | What it does |
|---|---|---|
actorOutput | string | Opens the structured business results dataset for this run. |
Core business row
| Field | Type | What it does |
|---|---|---|
businessName | string | Business name shown on the public Yelp page. |
businessUrl | string | Public Yelp page for the business. |
yelpBusinessId | string | Stable Yelp identifier used to join the business across runs. |
location | object | Public address details for the business. |
location.displayAddress | string | Full address shown on the public Yelp page. |
location.streetAddress | string | Street part of the address. |
location.city | string | City in the address. |
location.state | string | State or region in the address. |
location.postalCode | string | Postal code in the address. |
location.country | string | Country in the address. |
categories | array of strings | Business categories shown on Yelp. |
rating | number | Overall star rating shown on Yelp. |
reviewCount | integer | Number of reviews shown on Yelp. |
profile | object | Public profile details returned when Yelp provides them. |
profile.phoneNumber | string | Public phone number shown on the Yelp business page. |
profile.websiteUrl | string | Business website URL shown on Yelp. |
profile.hours | array of objects | Opening times shown on Yelp. |
profile.hours[].day | string | Day for an opening time. |
profile.hours[].openTime | string | Local opening time. |
profile.hours[].closeTime | string | Local closing time. |
profile.hours[].isOvernight | boolean | Whether the opening time ends on the next day. |
profile.isOpenNow | boolean | Whether Yelp marks the business as open when the page is read. |
profile.attributes | object | Public business attributes and values returned by Yelp. |
monitoring | object | History and material changes for this business. |
monitoring.history | array of objects | Earlier observations of the rating and review count. |
monitoring.history[].observedDate | string | Date of an earlier observation. |
monitoring.history[].rating | number | Rating in an earlier observation. |
monitoring.history[].reviewCount | integer | Review count in an earlier observation. |
monitoring.changes | array of objects | Material changes found by comparing observations. |
monitoring.changes[].kind | string | Change type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme. |
monitoring.changes[].observedDate | string | Date when the change was found. |
monitoring.changes[].fromRating | number | Earlier rating used for a rating change, when present. |
monitoring.changes[].toRating | number | Newer rating used for a rating change, when present. |
monitoring.changes[].theme | string | Review theme that appeared again across observations, when present. |
monitoring.changes[].evidenceReviewIds | array of strings | Review IDs that support the change, when Yelp provides them. |
incidents | array of objects | Reputation signals grouped into followable incidents. |
incidents[].incidentId | string | Stable ID for following an incident across runs. |
incidents[].theme | string | Reputation theme connected to the incident. |
incidents[].signalType | string | Signal type, such as complaintTheme, ratingDrop, or reviewPattern. |
incidents[].severity | integer | Deterministic severity score from 1 to 5. |
incidents[].state | string | Incident state, such as new, recurring, unresolved, or resolved. |
incidents[].firstObservedDate | string | First date when the incident was found. |
incidents[].lastObservedDate | string | Latest date when the incident was found. |
incidents[].evidenceReviewIds | array of strings | Review IDs that support the incident, when Yelp provides them. |
Example core business row
This unshortened row is copied from a successful current-beta run.
{"businessName": "Aba","businessUrl": "https://www.yelp.com/biz/aba-austin-4","yelpBusinessId": "GwAFL29gpnEIjAG9MauMig","location": {"displayAddress": "1011 S Congress Ave\nBldg 2, Ste 180\nAustin, TX 78704","streetAddress": "1011 S Congress Ave","city": "Austin","state": "TX","postalCode": "78704","country": "US"},"categories": ["Mediterranean","Bars","Seafood"],"rating": 4.4,"reviewCount": 1932,"monitoring": {"history": [{"observedDate": "2026-09-14","rating": 4.4,"reviewCount": 1932}],"changes": []},"incidents": [],"profile": {"phoneNumber": "(737) 273-0199","websiteUrl": "http://www.abarestaurants.com/austin","hours": [{"day": "Mon","openTime": "11:00 AM","closeTime": "10:00 PM","isOvernight": false},{"day": "Tue","openTime": "11:00 AM","closeTime": "10:00 PM","isOvernight": false},{"day": "Wed","openTime": "11:00 AM","closeTime": "10:00 PM","isOvernight": false},{"day": "Thu","openTime": "11:00 AM","closeTime": "10:00 PM","isOvernight": false},{"day": "Fri","openTime": "11:00 AM","closeTime": "11:00 PM","isOvernight": false},{"day": "Sat","openTime": "10:00 AM","closeTime": "11:00 PM","isOvernight": false},{"day": "Sun","openTime": "10:00 AM","closeTime": "9:00 PM","isOvernight": false}],"isOpenNow": true,"attributes": {"RestaurantsReservations": true,"RestaurantsDelivery": true,"RestaurantsTakeOut": true,"liked_by_vegans": true,"num_vegetarian_options": true,"is_wheelchair_accessible": true,"ada_compliant_entrance": true,"no_steps_or_stairs": true,"ada_compliant_restroom": true,"accessible_parking": false,"offers_qr_code_menu": false,"has_tv_closed_captioning": false,"asl_proficient": false,"offers_braille_menu": false,"tips": true,"large_parties_gratuity": true,"accepts_apple_pay": true,"accepts_cash": true,"accepts_credit_cards": true,"has_outdoor_seating": true,"Ambience": true,"NoiseLevel": true,"Caters": true,"good_for_groups": true,"good_for_kids": true,"GoodForMeal": true,"BusinessParking": true,"has_table_service": true,"wifi_options": true,"best_nights": true,"happy_hour_specials": true,"alcohol_options": true,"dogs_allowed": true,"heated_outdoor_seating": true,"covered_outdoor_seating": true,"private_dining": true,"has_gender_neutral_restrooms": true,"is_open_to_all": true,"good_for_dancing": false,"has_pool_table": false,"smoking": false,"has_drive_thru": false,"has_tv": false,"provides_reusable_tableware": true,"has_bike_parking": false}}}
Review analysis row
| Field | Type | What it does |
|---|---|---|
businessName | string | Business name shown on the public Yelp page. |
businessUrl | string | Public Yelp page for the business. |
yelpBusinessId | string | Stable Yelp identifier used to join the business across runs. |
location | object | Public address details for the business. |
location.displayAddress | string | Full address shown on the public Yelp page. |
location.streetAddress | string | Street part of the address. |
location.city | string | City in the address. |
location.state | string | State or region in the address. |
location.postalCode | string | Postal code in the address. |
location.country | string | Country in the address. |
categories | array of strings | Business categories shown on Yelp. |
rating | number | Overall star rating shown on Yelp. |
reviewCount | integer | Number of reviews shown on Yelp. |
profile | object | Public profile details returned when Yelp provides them. |
profile.phoneNumber | string | Public phone number shown on the Yelp business page. |
profile.websiteUrl | string | Business website URL shown on Yelp. |
profile.hours | array of objects | Opening times shown on Yelp. |
profile.hours[].day | string | Day for an opening time. |
profile.hours[].openTime | string | Local opening time. |
profile.hours[].closeTime | string | Local closing time. |
profile.hours[].isOvernight | boolean | Whether the opening time ends on the next day. |
profile.isOpenNow | boolean | Whether Yelp marks the business as open when the page is read. |
profile.attributes | object | Public business attributes and values returned by Yelp. |
monitoring | object | History and material changes for this business. |
monitoring.history | array of objects | Earlier observations of the rating and review count. |
monitoring.history[].observedDate | string | Date of an earlier observation. |
monitoring.history[].rating | number | Rating in an earlier observation. |
monitoring.history[].reviewCount | integer | Review count in an earlier observation. |
monitoring.changes | array of objects | Material changes found by comparing observations. |
monitoring.changes[].kind | string | Change type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme. |
monitoring.changes[].observedDate | string | Date when the change was found. |
monitoring.changes[].fromRating | number | Earlier rating used for a rating change, when present. |
monitoring.changes[].toRating | number | Newer rating used for a rating change, when present. |
monitoring.changes[].theme | string | Review theme that appeared again across observations, when present. |
monitoring.changes[].evidenceReviewIds | array of strings | Review IDs that support the change, when Yelp provides them. |
incidents | array of objects | Reputation signals grouped into followable incidents. |
incidents[].incidentId | string | Stable ID for following an incident across runs. |
incidents[].theme | string | Reputation theme connected to the incident. |
incidents[].signalType | string | Signal type, such as complaintTheme, ratingDrop, or reviewPattern. |
incidents[].severity | integer | Deterministic severity score from 1 to 5. |
incidents[].state | string | Incident state, such as new, recurring, unresolved, or resolved. |
incidents[].firstObservedDate | string | First date when the incident was found. |
incidents[].lastObservedDate | string | Latest date when the incident was found. |
incidents[].evidenceReviewIds | array of strings | Review IDs that support the incident, when Yelp provides them. |
reviews | array of objects | Public review records found for the business. |
reviews[].reviewId | string | Stable Yelp ID for the review. |
reviews[].reviewUrl | string | Public Yelp page that opens the review. |
reviews[].text | string | Full public review text. |
reviews[].rating | number | Star rating given in the review. |
reviews[].date | string | Date shown for the review. |
reviews[].language | string | Language of the review text. |
reviews[].reviewer | object | Public reviewer details that Yelp makes available. |
reviews[].reviewer.name | string | Reviewer name shown on Yelp. |
reviews[].reviewer.profileUrl | string | Public Yelp profile URL for the reviewer. |
reviews[].reviewer.reviewCount | integer | Number of reviews shown for the reviewer. |
reviews[].reviewer.location | string | Reviewer location shown on Yelp. |
reviews[].reviewer.eliteYears | array of integers | Yelp Elite years shown for the reviewer. |
reviews[].sentiment | string | Deterministic sentiment label for the review. |
reviewAnalysis | object | Deterministic findings from the review sample. |
reviewAnalysis.overallSentiment | string | Overall sentiment label for the analyzed sample. |
reviewAnalysis.themes | array of objects | Complaint and praise themes ordered by mentions. |
reviewAnalysis.themes[].theme | string | Theme found in the reviews. |
reviewAnalysis.themes[].kind | string | Whether the theme is a complaint or praise. |
reviewAnalysis.themes[].mentionCount | integer | Number of analyzed reviews that mention the theme. |
reviewAnalysis.sample | object | Counts and limitation for the review sample. |
reviewAnalysis.sample.availableReviewCount | integer | Public reviews found for analysis. |
reviewAnalysis.sample.analyzedReviewCount | integer | Public reviews used for analysis. |
reviewAnalysis.sample.limitation | string | Note about review evidence that was not analyzed, when present. |
attention | object | Current attention rank and reasons, when found. |
attention.rank | integer | Business rank in the attention queue, starting at 1. |
attention.reasons | array of strings | Reasons for the current attention rank. |
portfolioThemeMatches | array of objects | Complaint themes also found for other monitored businesses, when present. |
portfolioThemeMatches[].theme | string | Shared complaint theme. |
portfolioThemeMatches[].otherBusinessUrls | array of strings | Public Yelp URLs for other businesses with the theme. |
Example review analysis
This row is shortened. It is copied from a successful current-beta run. The string "..." marks omitted array contents or profile attributes.
{"businessName": "Hestia","businessUrl": "https://www.yelp.com/biz/hestia-austin","yelpBusinessId": "feNjLEC9gZ5QdPlQ05SDwQ","location": {"displayAddress": "607 West 3rd St\nSte 105\nAustin, TX 78701","streetAddress": "607 West 3rd St","city": "Austin","state": "TX","postalCode": "78701","country": "US"},"categories": ["New American","Seafood"],"rating": 4.3,"reviewCount": 450,"monitoring": {"history": [{"observedDate": "2026-08-29","rating": 4.3,"reviewCount": 448},{"observedDate": "2026-09-14","rating": 4.3,"reviewCount": 450}],"changes": [{"kind": "recurringTheme","observedDate": "2026-09-14","theme": "food","evidenceReviewIds": ["8qt40yvKlbC9u6z7Sb1L-A"]},{"kind": "recurringTheme","observedDate": "2026-09-14","theme": "service","evidenceReviewIds": ["8qt40yvKlbC9u6z7Sb1L-A"]},{"kind": "recurringTheme","observedDate": "2026-09-14","theme": "atmosphere","evidenceReviewIds": ["8qt40yvKlbC9u6z7Sb1L-A"]}]},"incidents": [{"incidentId": "incident-16bbfe7e719f5e87819c","theme": "food","signalType": "complaintTheme","severity": 1,"state": "recurring","firstObservedDate": "2026-08-29","lastObservedDate": "2026-09-14","evidenceReviewIds": ["8qt40yvKlbC9u6z7Sb1L-A"]},"..."],"profile": {"phoneNumber": "(512) 333-0737","websiteUrl": "https://hestiaaustin.com","hours": [{"day": "Tue","openTime": "5:30 PM","closeTime": "10:00 PM","isOvernight": false}],"isOpenNow": false,"attributes": "..."},"reviews": [{"reviewId": "TBh2xEaxk_TN-sxRd1x46A","reviewUrl": "https://www.yelp.com/biz/hestia-austin?hrid=TBh2xEaxk_TN-sxRd1x46A","text": "Took my parents here for their anniversary. \n\nThe service was excellent even before we arrived. They printed special menus without pricing because I wanted my parents to order whatever they wanted and not worry about it since I was treating them (they feel bad when I spend money on them). They had the special menus ready and an anniversary card already set on the table. \n\nThey have a selection of NA drinks and also gave us a commemorative NA drink on the house since I told them before we arrived that no one drinks. These small touches made an excellent time a magical time. \n\nNo wonder they are a Michelin starred restaurant! \nEveryone said happy anniversary to them and it was such a nice touch.\n\nWe did the tasting menu and Im so glad we did! \n\nThe highlights were:\n1. Short rib\n2. Caviar and cornbread\n3. Scallop\n4. Halibut\n\nNotable mentions:\n1. Tuna\n2. Oysters \n\nEverything else was delicious even if it's not mentioned above. The dishes played on many different senses and were very well planned, not only in execution but the order in which they were served. \n\nI think everyone should do the tasting menu at least once. The restaurant was filled but the noise level wasn't loud. They have valet parking on Friday and Saturday, which was very convenient.","rating": 5,"date": "2026-08-15","language": "en","reviewer": {"name": "Jin S.","profileUrl": "https://www.yelp.com/user_details?userid=K5WNQRhA1S79Eok7jni1Fg","reviewCount": 245,"location": "Austin, TX","eliteYears": [2026]},"sentiment": "positive"},"..."],"reviewAnalysis": {"overallSentiment": "positive","themes": [{"theme": "food","kind": "praise","mentionCount": 8},{"theme": "service","kind": "praise","mentionCount": 7},{"theme": "price and value","kind": "praise","mentionCount": 3},"..."],"sample": {"availableReviewCount": 450,"analyzedReviewCount": 10,"limitation": "The first 10 of 450 public reviews were analyzed."}},"attention": {"rank": 1,"reasons": ["recurringComplaint","newNegativeReviews"]},"portfolioThemeMatches": [{"theme": "food","otherBusinessUrls": ["https://www.yelp.com/biz/emerald-restaurant-austin","https://www.yelp.com/biz/jims-restaurants-austin-6","https://www.yelp.com/biz/little-mexico-restaurant-austin","https://www.yelp.com/biz/creeks-restaurant-austin","https://www.yelp.com/biz/champions-austin-restaurant-and-bar-austin","https://www.yelp.com/biz/jade-restaurant-austin"]},"..."]}
Comparison row
| Field | Type | What it does |
|---|---|---|
businessName | string | Business name shown on the public Yelp page. |
businessUrl | string | Public Yelp page for the business. |
yelpBusinessId | string | Stable Yelp identifier used to join the business across runs. |
location | object | Public address details for the business. |
location.displayAddress | string | Full address shown on the public Yelp page. |
location.streetAddress | string | Street part of the address. |
location.city | string | City in the address. |
location.state | string | State or region in the address. |
location.postalCode | string | Postal code in the address. |
location.country | string | Country in the address. |
categories | array of strings | Business categories shown on Yelp. |
rating | number | Overall star rating shown on Yelp. |
reviewCount | integer | Number of reviews shown on Yelp. |
profile | object | Public profile details returned when Yelp provides them. |
profile.phoneNumber | string | Public phone number shown on the Yelp business page. |
profile.websiteUrl | string | Business website URL shown on Yelp. |
profile.hours | array of objects | Opening times shown on Yelp. |
profile.hours[].day | string | Day for an opening time. |
profile.hours[].openTime | string | Local opening time. |
profile.hours[].closeTime | string | Local closing time. |
profile.hours[].isOvernight | boolean | Whether the opening time ends on the next day. |
profile.isOpenNow | boolean | Whether Yelp marks the business as open when the page is read. |
profile.attributes | object | Public business attributes and values returned by Yelp. |
reviews | array of objects | Public review records found for the business. |
reviews[].reviewId | string | Stable Yelp ID for the review. |
reviews[].reviewUrl | string | Public Yelp page that opens the review. |
reviews[].text | string | Full public review text. |
reviews[].rating | number | Star rating given in the review. |
reviews[].date | string | Date shown for the review. |
reviews[].language | string | Language of the review text. |
reviews[].reviewer | object | Public reviewer details that Yelp makes available. |
reviews[].reviewer.name | string | Reviewer name shown on Yelp. |
reviews[].reviewer.profileUrl | string | Public Yelp profile URL for the reviewer. |
reviews[].reviewer.reviewCount | integer | Number of reviews shown for the reviewer. |
reviews[].reviewer.location | string | Reviewer location shown on Yelp. |
reviews[].reviewer.eliteYears | array of integers | Yelp Elite years shown for the reviewer. |
reviews[].sentiment | string | Deterministic sentiment label for the review. |
reviewAnalysis | object | Deterministic findings from the review sample. |
reviewAnalysis.overallSentiment | string | Overall sentiment label for the analyzed sample. |
reviewAnalysis.themes | array of objects | Complaint and praise themes ordered by mentions. |
reviewAnalysis.themes[].theme | string | Theme found in the reviews. |
reviewAnalysis.themes[].kind | string | Whether the theme is a complaint or praise. |
reviewAnalysis.themes[].mentionCount | integer | Number of analyzed reviews that mention the theme. |
reviewAnalysis.sample | object | Counts and limitation for the review sample. |
reviewAnalysis.sample.availableReviewCount | integer | Public reviews found for analysis. |
reviewAnalysis.sample.analyzedReviewCount | integer | Public reviews used for analysis. |
reviewAnalysis.sample.limitation | string | Note about review evidence that was not analyzed, when present. |
monitoring | object | History and material changes for this business. |
monitoring.history | array of objects | Earlier observations of the rating and review count. |
monitoring.history[].observedDate | string | Date of an earlier observation. |
monitoring.history[].rating | number | Rating in an earlier observation. |
monitoring.history[].reviewCount | integer | Review count in an earlier observation. |
monitoring.changes | array of objects | Material changes found by comparing observations. |
monitoring.changes[].kind | string | Change type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme. |
monitoring.changes[].observedDate | string | Date when the change was found. |
monitoring.changes[].fromRating | number | Earlier rating used for a rating change, when present. |
monitoring.changes[].toRating | number | Newer rating used for a rating change, when present. |
monitoring.changes[].theme | string | Review theme that appeared again across observations, when present. |
monitoring.changes[].evidenceReviewIds | array of strings | Review IDs that support the change, when present. |
incidents | array of objects | Reputation signals grouped into followable incidents. |
incidents[].incidentId | string | Stable ID for following an incident across runs. |
incidents[].theme | string | Reputation theme connected to the incident. |
incidents[].signalType | string | Signal type, such as complaintTheme, ratingDrop, or reviewPattern. |
incidents[].severity | integer | Deterministic severity score from 1 to 5. |
incidents[].state | string | Incident state, such as new, recurring, unresolved, or resolved. |
incidents[].firstObservedDate | string | First date when the incident was found. |
incidents[].lastObservedDate | string | Latest date when the incident was found. |
incidents[].evidenceReviewIds | array of strings | Review IDs that support the incident, when Yelp provides them. |
attention | object | Current attention rank and reasons, when found. |
attention.rank | integer | Business rank in the attention queue, starting at 1. |
attention.reasons | array of strings | Reasons for the current attention rank. |
competitorComparison | object | Position and pressure signals for the submitted comparison set. |
competitorComparison.role | string | Whether this business is the anchor or a competitor. |
competitorComparison.position | integer | Position within the submitted comparison set. |
competitorComparison.pressureLevel | string | Deterministic pressure level for the comparison. |
competitorComparison.overtakeSignal | string | Whether the comparison shows an ahead, close, or behind position. |
portfolioThemeMatches | array of objects | Complaint themes also found for other monitored businesses, when present. |
portfolioThemeMatches[].theme | string | Shared complaint theme. |
portfolioThemeMatches[].otherBusinessUrls | array of strings | Public Yelp URLs for other businesses with the theme. |
Example comparison row
This row is shortened. It is copied from a successful current-beta run. The string "..." marks omitted array contents, review analysis details, or profile attributes.
{"businessName": "Jade Restaurant","businessUrl": "https://www.yelp.com/biz/jade-restaurant-austin","yelpBusinessId": "-Xq6ruGk0U3inDf7BOX1YA","location": {"displayAddress": "3801 N Capital Of Texas Hwy\nC200\nAustin, TX 78746","streetAddress": "3801 N Capital Of Texas Hwy","city": "Austin","state": "TX","postalCode": "78746","country": "US"},"categories": ["Asian Fusion","Dim Sum"],"rating": 4.1,"reviewCount": 287,"profile": {"hours": [{"day": "Tue","openTime": "11:00 AM","closeTime": "3:00 PM","isOvernight": false},{"day": "Tue","openTime": "5:00 PM","closeTime": "9:30 PM","isOvernight": false}],"attributes": "..."},"reviews": [{"reviewId": "gjJzAAI5XMDZlrNjwEPQlg","reviewUrl": "https://www.yelp.com/biz/jade-restaurant-austin?hrid=gjJzAAI5XMDZlrNjwEPQlg","text": "They all tasted amazing and that's coming from an Asian, who is very picky about her steam buns and fish. I know it's not the traditional whole fish, but it was incredible. \n\nDon't let it fool you. These food are authentic and made fresh from scratch. I highly recommend this restaurant. \n\nThe server was always very attentive.\nWe can during the World Cup and at lunch time so we were the only ones there.","rating": 5,"date": "2026-06-20","language": "en","reviewer": {"name": "Kathy X.","profileUrl": "https://www.yelp.com/user_details?userid=mRoSGWrn9ZnVN-MNplHRSQ","reviewCount": 22,"location": "Lake Forest, CA"},"sentiment": "positive"},"..."],"reviewAnalysis": {"overallSentiment": "positive","themes": [{"theme": "food","kind": "praise","mentionCount": 8},{"theme": "food","kind": "complaint","mentionCount": 2},{"theme": "price and value","kind": "praise","mentionCount": 2},"..."],"sample": {"availableReviewCount": 287,"analyzedReviewCount": 10,"limitation": "The first 10 of 287 public reviews were analyzed."}},"monitoring": {"history": [],"changes": []},"incidents": [{"incidentId": "incident-2c29c4df745f6c2fb860","theme": "food","signalType": "complaintTheme","severity": 2,"state": "new","firstObservedDate": "2026-09-14","lastObservedDate": "2026-09-14","evidenceReviewIds": ["vNzCVTbI-SZVRmTKiPsV1A","BLDNT2Bkt1_fIJQ9pBNPRg"]},{"incidentId": "incident-3b887d36a7511fd7661f","theme": "service","signalType": "complaintTheme","severity": 1,"state": "new","firstObservedDate": "2026-09-14","lastObservedDate": "2026-09-14","evidenceReviewIds": ["vNzCVTbI-SZVRmTKiPsV1A"]},"..."],"attention": {"rank": 1,"reasons": ["newNegativeReviews"]},"competitorComparison": {"role": "competitor","position": 2,"pressureLevel": "low","overtakeSignal": "behind"},"portfolioThemeMatches": [{"theme": "food","otherBusinessUrls": ["https://www.yelp.com/biz/emerald-restaurant-austin","https://www.yelp.com/biz/jims-restaurants-austin-6","https://www.yelp.com/biz/little-mexico-restaurant-austin","https://www.yelp.com/biz/hestia-austin","https://www.yelp.com/biz/creeks-restaurant-austin","https://www.yelp.com/biz/champions-austin-restaurant-and-bar-austin"]},"..."]}
💳 Pricing
The pricing panel shows the current event prices.
Business assessment
One charge applies to each successfully processed public Yelp business location.
Review
One charge applies to each public Yelp review returned by the run.
🔌 Integrations
Dataset access
Open Business results from the run output to inspect structured rows. Use Apify's dataset tools or API to read and export the data.
Video guide
❓ FAQ
What does the Actor read?
It reads publicly accessible Yelp business and review pages. Private or login-gated Yelp content is outside the product boundary.
How do I monitor several locations?
Choose Business URLs and add the public Yelp pages you want to track. Run the same watchlist again later to compare observations and see material changes.
How is category discovery different from a watchlist?
Category and location makes one Yelp discovery query. Business URLs track the locations you submit. A run does not accept several independently configured category or location searches.
What happens when I add competitor URLs?
The first Business URL is the anchor location. Competitor URLs are also tracked, and the output can include each location's position, pressure level, and overtake signal within the submitted set.
What does review evidence include?
When review evidence is enabled, a row can include full review text, star rating, date, language, public reviewer context, and a deterministic sentiment label. The analysis also reports the number of public reviews found and analyzed.
What profile details can I get?
Rows can include a public phone number, website, hours, open state, and other business attributes when Yelp provides them.
Why can monitoring history be short?
History depends on earlier successful observations of the same business. The first run has little or no earlier data to compare, so later runs provide more context.
Can I process every available location?
Yes. Leave Maximum locations empty to process every available location until the source is exhausted. A number stops the run after that many locations.
How can I keep a run smaller?
Set Maximum locations to the number you need. You can also turn off review evidence when you only need business and monitoring fields.
Does this post or draft Yelp replies?
No. It reads public Yelp data and returns structured analysis. It does not post, draft, dispute, or solicit review responses, and it does not give fake-review or business-quality verdicts.
📝 Changelog
v1.0 (15-09-2026)
- Category and location searches return public Yelp businesses from the matching Yelp results.
- Business rows include public profile details whenever Yelp provides them.
- Competitor comparisons report the business position, pressure level, and overtake signal.
- Review evidence has a separate charge for each review returned.
v0.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
- Yelp Business Review Scraper: Collect full-text review rows for review-focused work.
- Yelp Scraper: Pull Yelp business listings and optional profile details from a search or URL.
- Yelp Reviews Scraper: Collect full review text, ratings, dates, photos, and reviewer profiles from a business page.
- Yelp Reviews Scraper: Sort or filter review collection from public business URLs or IDs.
- Yelp Reviews Scraper - Sentiment, Topics, Competitor Delta: Explore per-review sentiment, topic clusters, trends, and competitor deltas.
Made with ❤️ by Maxime Dupré