Yelp Scraper: Review Reputation Monitor avatar

Yelp Scraper: Review Reputation Monitor

Pricing

from $0.45 / 1,000 business assessments

Go to Apify Store
Yelp Scraper: Review Reputation Monitor

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

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

📊 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

FieldTypeWhat it does
findBusinessesBystringChooses businessUrls for known locations or categoryLocation for one category and location query.
businessUrlsarray of objectsPublic Yelp business page URLs to track. Required when findBusinessesBy is businessUrls.
businessUrls[].urlstringOne public Yelp business page URL.
competitorUrlsarray of objectsOptional public Yelp pages to compare with the first business URL. Supplied competitors are also tracked.
competitorUrls[].urlstringOne public Yelp business page URL for the comparison set.
categorystringOne category for the Yelp discovery query, such as restaurants or dentists. Required when findBusinessesBy is categoryLocation.
locationstringOne city, area, or address for the Yelp discovery query. Required when findBusinessesBy is categoryLocation.
includeReviewEvidencebooleanReturns public review records with full text, star rating, date, language, and available reviewer context.
maxLocationsintegerStops 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

FieldTypeWhat it does
actorOutputstringOpens the structured business results dataset for this run.

Core business row

FieldTypeWhat it does
businessNamestringBusiness name shown on the public Yelp page.
businessUrlstringPublic Yelp page for the business.
yelpBusinessIdstringStable Yelp identifier used to join the business across runs.
locationobjectPublic address details for the business.
location.displayAddressstringFull address shown on the public Yelp page.
location.streetAddressstringStreet part of the address.
location.citystringCity in the address.
location.statestringState or region in the address.
location.postalCodestringPostal code in the address.
location.countrystringCountry in the address.
categoriesarray of stringsBusiness categories shown on Yelp.
ratingnumberOverall star rating shown on Yelp.
reviewCountintegerNumber of reviews shown on Yelp.
profileobjectPublic profile details returned when Yelp provides them.
profile.phoneNumberstringPublic phone number shown on the Yelp business page.
profile.websiteUrlstringBusiness website URL shown on Yelp.
profile.hoursarray of objectsOpening times shown on Yelp.
profile.hours[].daystringDay for an opening time.
profile.hours[].openTimestringLocal opening time.
profile.hours[].closeTimestringLocal closing time.
profile.hours[].isOvernightbooleanWhether the opening time ends on the next day.
profile.isOpenNowbooleanWhether Yelp marks the business as open when the page is read.
profile.attributesobjectPublic business attributes and values returned by Yelp.
monitoringobjectHistory and material changes for this business.
monitoring.historyarray of objectsEarlier observations of the rating and review count.
monitoring.history[].observedDatestringDate of an earlier observation.
monitoring.history[].ratingnumberRating in an earlier observation.
monitoring.history[].reviewCountintegerReview count in an earlier observation.
monitoring.changesarray of objectsMaterial changes found by comparing observations.
monitoring.changes[].kindstringChange type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme.
monitoring.changes[].observedDatestringDate when the change was found.
monitoring.changes[].fromRatingnumberEarlier rating used for a rating change, when present.
monitoring.changes[].toRatingnumberNewer rating used for a rating change, when present.
monitoring.changes[].themestringReview theme that appeared again across observations, when present.
monitoring.changes[].evidenceReviewIdsarray of stringsReview IDs that support the change, when Yelp provides them.
incidentsarray of objectsReputation signals grouped into followable incidents.
incidents[].incidentIdstringStable ID for following an incident across runs.
incidents[].themestringReputation theme connected to the incident.
incidents[].signalTypestringSignal type, such as complaintTheme, ratingDrop, or reviewPattern.
incidents[].severityintegerDeterministic severity score from 1 to 5.
incidents[].statestringIncident state, such as new, recurring, unresolved, or resolved.
incidents[].firstObservedDatestringFirst date when the incident was found.
incidents[].lastObservedDatestringLatest date when the incident was found.
incidents[].evidenceReviewIdsarray of stringsReview 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

FieldTypeWhat it does
businessNamestringBusiness name shown on the public Yelp page.
businessUrlstringPublic Yelp page for the business.
yelpBusinessIdstringStable Yelp identifier used to join the business across runs.
locationobjectPublic address details for the business.
location.displayAddressstringFull address shown on the public Yelp page.
location.streetAddressstringStreet part of the address.
location.citystringCity in the address.
location.statestringState or region in the address.
location.postalCodestringPostal code in the address.
location.countrystringCountry in the address.
categoriesarray of stringsBusiness categories shown on Yelp.
ratingnumberOverall star rating shown on Yelp.
reviewCountintegerNumber of reviews shown on Yelp.
profileobjectPublic profile details returned when Yelp provides them.
profile.phoneNumberstringPublic phone number shown on the Yelp business page.
profile.websiteUrlstringBusiness website URL shown on Yelp.
profile.hoursarray of objectsOpening times shown on Yelp.
profile.hours[].daystringDay for an opening time.
profile.hours[].openTimestringLocal opening time.
profile.hours[].closeTimestringLocal closing time.
profile.hours[].isOvernightbooleanWhether the opening time ends on the next day.
profile.isOpenNowbooleanWhether Yelp marks the business as open when the page is read.
profile.attributesobjectPublic business attributes and values returned by Yelp.
monitoringobjectHistory and material changes for this business.
monitoring.historyarray of objectsEarlier observations of the rating and review count.
monitoring.history[].observedDatestringDate of an earlier observation.
monitoring.history[].ratingnumberRating in an earlier observation.
monitoring.history[].reviewCountintegerReview count in an earlier observation.
monitoring.changesarray of objectsMaterial changes found by comparing observations.
monitoring.changes[].kindstringChange type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme.
monitoring.changes[].observedDatestringDate when the change was found.
monitoring.changes[].fromRatingnumberEarlier rating used for a rating change, when present.
monitoring.changes[].toRatingnumberNewer rating used for a rating change, when present.
monitoring.changes[].themestringReview theme that appeared again across observations, when present.
monitoring.changes[].evidenceReviewIdsarray of stringsReview IDs that support the change, when Yelp provides them.
incidentsarray of objectsReputation signals grouped into followable incidents.
incidents[].incidentIdstringStable ID for following an incident across runs.
incidents[].themestringReputation theme connected to the incident.
incidents[].signalTypestringSignal type, such as complaintTheme, ratingDrop, or reviewPattern.
incidents[].severityintegerDeterministic severity score from 1 to 5.
incidents[].statestringIncident state, such as new, recurring, unresolved, or resolved.
incidents[].firstObservedDatestringFirst date when the incident was found.
incidents[].lastObservedDatestringLatest date when the incident was found.
incidents[].evidenceReviewIdsarray of stringsReview IDs that support the incident, when Yelp provides them.
reviewsarray of objectsPublic review records found for the business.
reviews[].reviewIdstringStable Yelp ID for the review.
reviews[].reviewUrlstringPublic Yelp page that opens the review.
reviews[].textstringFull public review text.
reviews[].ratingnumberStar rating given in the review.
reviews[].datestringDate shown for the review.
reviews[].languagestringLanguage of the review text.
reviews[].reviewerobjectPublic reviewer details that Yelp makes available.
reviews[].reviewer.namestringReviewer name shown on Yelp.
reviews[].reviewer.profileUrlstringPublic Yelp profile URL for the reviewer.
reviews[].reviewer.reviewCountintegerNumber of reviews shown for the reviewer.
reviews[].reviewer.locationstringReviewer location shown on Yelp.
reviews[].reviewer.eliteYearsarray of integersYelp Elite years shown for the reviewer.
reviews[].sentimentstringDeterministic sentiment label for the review.
reviewAnalysisobjectDeterministic findings from the review sample.
reviewAnalysis.overallSentimentstringOverall sentiment label for the analyzed sample.
reviewAnalysis.themesarray of objectsComplaint and praise themes ordered by mentions.
reviewAnalysis.themes[].themestringTheme found in the reviews.
reviewAnalysis.themes[].kindstringWhether the theme is a complaint or praise.
reviewAnalysis.themes[].mentionCountintegerNumber of analyzed reviews that mention the theme.
reviewAnalysis.sampleobjectCounts and limitation for the review sample.
reviewAnalysis.sample.availableReviewCountintegerPublic reviews found for analysis.
reviewAnalysis.sample.analyzedReviewCountintegerPublic reviews used for analysis.
reviewAnalysis.sample.limitationstringNote about review evidence that was not analyzed, when present.
attentionobjectCurrent attention rank and reasons, when found.
attention.rankintegerBusiness rank in the attention queue, starting at 1.
attention.reasonsarray of stringsReasons for the current attention rank.
portfolioThemeMatchesarray of objectsComplaint themes also found for other monitored businesses, when present.
portfolioThemeMatches[].themestringShared complaint theme.
portfolioThemeMatches[].otherBusinessUrlsarray of stringsPublic 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

FieldTypeWhat it does
businessNamestringBusiness name shown on the public Yelp page.
businessUrlstringPublic Yelp page for the business.
yelpBusinessIdstringStable Yelp identifier used to join the business across runs.
locationobjectPublic address details for the business.
location.displayAddressstringFull address shown on the public Yelp page.
location.streetAddressstringStreet part of the address.
location.citystringCity in the address.
location.statestringState or region in the address.
location.postalCodestringPostal code in the address.
location.countrystringCountry in the address.
categoriesarray of stringsBusiness categories shown on Yelp.
ratingnumberOverall star rating shown on Yelp.
reviewCountintegerNumber of reviews shown on Yelp.
profileobjectPublic profile details returned when Yelp provides them.
profile.phoneNumberstringPublic phone number shown on the Yelp business page.
profile.websiteUrlstringBusiness website URL shown on Yelp.
profile.hoursarray of objectsOpening times shown on Yelp.
profile.hours[].daystringDay for an opening time.
profile.hours[].openTimestringLocal opening time.
profile.hours[].closeTimestringLocal closing time.
profile.hours[].isOvernightbooleanWhether the opening time ends on the next day.
profile.isOpenNowbooleanWhether Yelp marks the business as open when the page is read.
profile.attributesobjectPublic business attributes and values returned by Yelp.
reviewsarray of objectsPublic review records found for the business.
reviews[].reviewIdstringStable Yelp ID for the review.
reviews[].reviewUrlstringPublic Yelp page that opens the review.
reviews[].textstringFull public review text.
reviews[].ratingnumberStar rating given in the review.
reviews[].datestringDate shown for the review.
reviews[].languagestringLanguage of the review text.
reviews[].reviewerobjectPublic reviewer details that Yelp makes available.
reviews[].reviewer.namestringReviewer name shown on Yelp.
reviews[].reviewer.profileUrlstringPublic Yelp profile URL for the reviewer.
reviews[].reviewer.reviewCountintegerNumber of reviews shown for the reviewer.
reviews[].reviewer.locationstringReviewer location shown on Yelp.
reviews[].reviewer.eliteYearsarray of integersYelp Elite years shown for the reviewer.
reviews[].sentimentstringDeterministic sentiment label for the review.
reviewAnalysisobjectDeterministic findings from the review sample.
reviewAnalysis.overallSentimentstringOverall sentiment label for the analyzed sample.
reviewAnalysis.themesarray of objectsComplaint and praise themes ordered by mentions.
reviewAnalysis.themes[].themestringTheme found in the reviews.
reviewAnalysis.themes[].kindstringWhether the theme is a complaint or praise.
reviewAnalysis.themes[].mentionCountintegerNumber of analyzed reviews that mention the theme.
reviewAnalysis.sampleobjectCounts and limitation for the review sample.
reviewAnalysis.sample.availableReviewCountintegerPublic reviews found for analysis.
reviewAnalysis.sample.analyzedReviewCountintegerPublic reviews used for analysis.
reviewAnalysis.sample.limitationstringNote about review evidence that was not analyzed, when present.
monitoringobjectHistory and material changes for this business.
monitoring.historyarray of objectsEarlier observations of the rating and review count.
monitoring.history[].observedDatestringDate of an earlier observation.
monitoring.history[].ratingnumberRating in an earlier observation.
monitoring.history[].reviewCountintegerReview count in an earlier observation.
monitoring.changesarray of objectsMaterial changes found by comparing observations.
monitoring.changes[].kindstringChange type, such as ratingMovement, ratingRecovery, newReviews, or recurringTheme.
monitoring.changes[].observedDatestringDate when the change was found.
monitoring.changes[].fromRatingnumberEarlier rating used for a rating change, when present.
monitoring.changes[].toRatingnumberNewer rating used for a rating change, when present.
monitoring.changes[].themestringReview theme that appeared again across observations, when present.
monitoring.changes[].evidenceReviewIdsarray of stringsReview IDs that support the change, when present.
incidentsarray of objectsReputation signals grouped into followable incidents.
incidents[].incidentIdstringStable ID for following an incident across runs.
incidents[].themestringReputation theme connected to the incident.
incidents[].signalTypestringSignal type, such as complaintTheme, ratingDrop, or reviewPattern.
incidents[].severityintegerDeterministic severity score from 1 to 5.
incidents[].statestringIncident state, such as new, recurring, unresolved, or resolved.
incidents[].firstObservedDatestringFirst date when the incident was found.
incidents[].lastObservedDatestringLatest date when the incident was found.
incidents[].evidenceReviewIdsarray of stringsReview IDs that support the incident, when Yelp provides them.
attentionobjectCurrent attention rank and reasons, when found.
attention.rankintegerBusiness rank in the attention queue, starting at 1.
attention.reasonsarray of stringsReasons for the current attention rank.
competitorComparisonobjectPosition and pressure signals for the submitted comparison set.
competitorComparison.rolestringWhether this business is the anchor or a competitor.
competitorComparison.positionintegerPosition within the submitted comparison set.
competitorComparison.pressureLevelstringDeterministic pressure level for the comparison.
competitorComparison.overtakeSignalstringWhether the comparison shows an ahead, close, or behind position.
portfolioThemeMatchesarray of objectsComplaint themes also found for other monitored businesses, when present.
portfolioThemeMatches[].themestringShared complaint theme.
portfolioThemeMatches[].otherBusinessUrlsarray of stringsPublic 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 🫡

Made with ❤️ by Maxime Dupré