Google and TripAdvisor Review Scraper avatar
Google and TripAdvisor Review Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Google and TripAdvisor Review Scraper

Google and TripAdvisor Review Scraper

Scrape Google Maps & TripAdvisor reviews with sentiment analysis. Get ratings, text, dates & reviewer info. Features: date filtering, webhook alerts for negative reviews, incremental mode, n8n integration. Perfect for reputation monitoring & competitor analysis. Residential proxies included.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Malikgen

Malikgen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Review Aggregator Analyzer

Scrape Google Maps and TripAdvisor reviews with sentiment analysis, date filtering, and webhook alerts. Perfect for reputation monitoring, competitor analysis, and automation integration.

Supported Platforms

PlatformBest ForReview Data
Google MapsLocal businesses, restaurants, hotels, servicesRating, text, date, reviewer info, photos, owner response
TripAdvisorHotels, restaurants, attractionsRating, text, date, reviewer info, helpful votes, owner response

Features

  • Multi-Platform: Scrape both Google Maps and TripAdvisor in one run
  • Date Filtering: Filter by last 24h, week, month, or custom date range
  • Sentiment Analysis: Built-in sentiment scoring (positive/neutral/negative)
  • Webhook Alerts: Instant notifications when negative reviews are found
  • Incremental Mode: Only scrape new reviews since last run
  • n8n Ready: Includes workflow template for automation

Quick Start

Example Input

{
"businesses": [
{
"name": "McDonald's Times Square",
"location": "New York, USA",
"platforms": ["google", "tripadvisor"],
"urls": {
"google": "https://www.google.com/maps/place/McDonald's/@40.7579787,-73.9877438,17z/data=!3m1!4b1!4m6!3m5!1s0x89c25855b8fb3083:0x5765322ba9927c08!8m2!3d40.7579787!4d-73.9855551!16s%2Fg%2F1tdfh_7d",
"tripadvisor": "https://www.tripadvisor.com/Restaurant_Review-g60763-d479078-Reviews-McDonald_s-New_York_City_New_York.html"
}
}
],
"platforms": ["google", "tripadvisor"],
"dateFilter": "last_month",
"maxReviewsPerBusiness": 50,
"enableSentiment": true
}

Minimal Example (Google Maps Only)

{
"businesses": [
{
"name": "My Business",
"location": "City, Country",
"platforms": ["google"],
"urls": {
"google": "https://www.google.com/maps/place/..."
}
}
],
"dateFilter": "last_week"
}

How to Find Business URLs

Google Maps URL

Step-by-step:

  1. Go to Google Maps
  2. Search for the business name (e.g., "McDonald's Times Square")
  3. Click on the business listing in the search results
  4. Important: Make sure the business info panel is open on the left
  5. Copy the URL from your browser's address bar

URL Format:

https://www.google.com/maps/place/Business+Name/@LAT,LNG,ZOOM/data=...

Example:

https://www.google.com/maps/place/McDonald's/@40.7579787,-73.9877438,17z/data=!3m1!4b1!4m6!3m5!1s0x89c25855b8fb3083:0x5765322ba9927c08!8m2!3d40.7579787!4d-73.9855551!16s%2Fg%2F1tdfh_7d

Tips:

  • The URL must contain /place/ - this indicates you're on a specific business page
  • You can also click "Share" on the business and copy the link
  • Short URLs (maps.app.goo.gl) also work

TripAdvisor URL

Step-by-step:

  1. Go to TripAdvisor
  2. Search for the business name and location
  3. Click on the specific business listing
  4. Copy the URL from your browser's address bar

URL Formats:

# Restaurant
https://www.tripadvisor.com/Restaurant_Review-g{GEO_ID}-d{LOCATION_ID}-Reviews-Name-City.html
# Hotel
https://www.tripadvisor.com/Hotel_Review-g{GEO_ID}-d{LOCATION_ID}-Reviews-Name-City.html
# Attraction
https://www.tripadvisor.com/Attraction_Review-g{GEO_ID}-d{LOCATION_ID}-Reviews-Name-City.html

Example:

https://www.tripadvisor.com/Restaurant_Review-g60763-d479078-Reviews-McDonald_s-New_York_City_New_York.html

URL Components:

  • g60763 = Geographic location ID (New York City)
  • d479078 = Business/Location ID (this is what we extract)
  • The scraper extracts the d{number} part automatically

Input Parameters

Business Configuration

ParameterTypeRequiredDescription
businessesArrayYesList of businesses with name, location, platforms, and URLs
platformsArrayNoPlatforms to scrape: google, tripadvisor (default: both)

Date Filtering

ParameterTypeDefaultDescription
dateFilterStringlast_monthQuick filter options (see table below)
dateFromString-Start date (YYYY-MM-DD) for custom range
dateToString-End date (YYYY-MM-DD) for custom range

Date Filter Options:

ValueTime RangeUse Case
last_24hPast 24 hoursDaily monitoring
last_48hPast 48 hoursCatch missed reviews
last_weekPast 7 daysWeekly reports
last_monthPast 30 daysMonthly analysis
last_3_monthsPast 90 daysQuarterly review
last_yearPast 365 daysAnnual analysis
allAll timeInitial data collection
customCustom rangeUse with dateFrom/dateTo

Scraping Options

ParameterTypeDefaultDescription
maxReviewsPerBusinessInteger100Max reviews per business per platform (10-1000)
sortByStringnewestSort order: newest, oldest, highest_rating, lowest_rating
onlyNewReviewsBooleanfalseIncremental mode - only new reviews since last run

Sentiment & Filtering

ParameterTypeDefaultDescription
enableSentimentBooleantrueEnable sentiment analysis (adds positive/negative/neutral labels to each review)
sentimentFilterStringallFilter: all, negative_only, positive_only
minRatingInteger-Only reviews with rating >= this value
maxRatingInteger-Only reviews with rating <= this value

Note: Sentiment analysis is enabled by default. Each review gets a sentiment score (0-1) and label (positive/neutral/negative). This helps identify reviews that need attention without manual reading.

Webhook Alerts

ParameterTypeDescription
webhookUrlStringURL to POST when negative review is found
negativeThresholdIntegerRating at or below this triggers webhook (default: 2)

Proxy Configuration

ParameterTypeDefaultDescription
proxyConfigurationObjectResidentialProxy settings for avoiding blocks

⚠️ IMPORTANT: Proxy Requirements

PlatformProxy TypeNotes
Google MapsDatacenter or ResidentialWorks with both, datacenter is cheaper
TripAdvisorRESIDENTIAL REQUIREDWill get 403 errors with datacenter proxies

Recommendation: Use RESIDENTIAL proxy group for best results with both platforms. This is set as the default.

If you're only scraping Google Maps, you can switch to datacenter proxies to save costs.


Example Output

JSON Output (Single Review)

Each review in the dataset contains the following structure (real data from McDonald's Times Square):

{
"id": "Ci9DQUlRQUNvZENodHljRjlvT2xaQ09HUXpkakkyY2pWa2NGWTVRbE4zY205SWEzYxAB",
"business": {
"name": "McDonald's Times Square",
"location": "New York, USA",
"businessId": null,
"platformBusinessId": null
},
"platform": "google",
"platformUrl": "https://www.google.com/maps/place/McDonald's/@40.7579787,-73.9877438,17z/...",
"reviewer": {
"name": "R J",
"profileUrl": null,
"reviewCount": null,
"isLocalGuide": false,
"avatarUrl": "https://lh3.googleusercontent.com/a/ACg8ocIu40q_Gyd7uJGek25e6IhiIig0POA3I1X2yT_IsYEvS6TmRg=w36-h36-p-rp-mo-ba4-br100"
},
"review": {
"rating": 4,
"ratingNormalized": 4,
"text": "Convenient location and great customer service staff.",
"date": "2025-12-18",
"dateISO": "2025-12-18T21:41:33.277Z",
"language": "en",
"helpfulVotes": 0,
"photos": []
},
"businessResponse": null,
"sentiment": {
"score": 0.47,
"label": "positive",
"confidence": 0.68,
"source": "combined",
"breakdown": {
"text": 0.43,
"rating": 0.5
}
},
"metadata": {
"scrapedAt": "2025-12-18T21:41:33.277Z",
"isNew": true,
"runId": "VTnrK3BNnx"
}
}

Example: Multiple Reviews (Real Data)

[
{
"id": "review-001",
"business": { "name": "McDonald's Times Square", "location": "New York, USA" },
"platform": "google",
"reviewer": { "name": "Elvis Jimenez", "isLocalGuide": false },
"review": {
"rating": 5,
"text": "One of the cleanest mc'D in NYC very fast service hot food and hot coffee. Worth the trip",
"date": "2025-12-18"
},
"sentiment": { "score": 0.64, "label": "positive", "confidence": 0.39 }
},
{
"id": "review-002",
"business": { "name": "McDonald's Times Square", "location": "New York, USA" },
"platform": "google",
"reviewer": { "name": "laura Vazquez", "isLocalGuide": false },
"review": {
"rating": 1,
"text": "A very very nasty 🤢 security officer in here makes it a horrible customer experience I will make sure I don't return here…",
"date": "2025-12-18"
},
"sentiment": { "score": -0.7, "label": "negative", "confidence": 0.48 }
},
{
"id": "review-003",
"business": { "name": "McDonald's Times Square", "location": "New York, USA" },
"platform": "google",
"reviewer": { "name": "Angelx Galloza", "isLocalGuide": false },
"review": {
"rating": 3,
"text": "To long for the wait gentleman working with long face and attitude and got the wrong order",
"date": "2025-12-18"
},
"sentiment": { "score": -0.04, "label": "neutral", "confidence": 0.55 }
}
]

CSV Output Format

When exporting as CSV, the data is flattened:

idbusiness.nameplatformreviewer.namereview.ratingreview.textreview.datesentiment.labelsentiment.score
review-001McDonald's Times SquaregoogleElvis Jimenez5One of the cleanest mc'D in NYC...2025-12-18positive0.64
review-002McDonald's Times Squaregooglelaura Vazquez1A very very nasty security officer...2025-12-18negative-0.70
review-003McDonald's Times SquaregoogleAngelx Galloza3To long for the wait gentleman...2025-12-18neutral-0.04

Sentiment Score Interpretation

Score RangeLabelDescription
0.0 - 0.35negativeBad reviews needing attention
0.35 - 0.65neutralMixed or average reviews
0.65 - 1.0positiveGood reviews, happy customers

API Usage

Start a Run

curl -X POST "https://api.apify.com/v2/acts/malikgen~review-aggregator-analyzer/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"businesses": [{
"name": "McDonald'\''s Times Square",
"location": "New York, USA",
"platforms": ["google", "tripadvisor"],
"urls": {
"google": "https://www.google.com/maps/place/McDonald'\''s/@40.7579787,-73.9877438,17z/...",
"tripadvisor": "https://www.tripadvisor.com/Restaurant_Review-g60763-d479078-Reviews-McDonald_s-New_York_City_New_York.html"
}
}],
"dateFilter": "last_month"
}'

Get Results

# JSON format
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"
# CSV format
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=csv"

n8n Integration

This Actor includes a ready-to-use n8n workflow for automated review monitoring.

Quick Setup

  1. Import Workflow: Download n8n-workflow-async-polling.json and import into n8n
  2. Add Apify Credential: Settings > Credentials > Add "Query Auth" with your API token
  3. Configure Actor ID: Update to malikgen~review-aggregator-analyzer
  4. Optional: Connect Google Sheets for automatic export

Form Fields

The included n8n form has these fields with example placeholders:

FieldExample
Business NameMcDonald's Times Square
LocationNew York, USA
Google Maps URLhttps://www.google.com/maps/place/...
TripAdvisor URLhttps://www.tripadvisor.com/Restaurant_Review-...
Date Filterlast_month
Max Reviews50

Troubleshooting

No reviews returned?

  1. Check URLs: Verify the URLs open correctly in a browser
  2. Expand date filter: Try last_month or all to confirm data exists
  3. Check platform: TripAdvisor may have fewer recent reviews than Google

TripAdvisor returns 0 reviews?

  • ⚠️ USE RESIDENTIAL PROXIES - TripAdvisor blocks datacenter IPs. Make sure you have "RESIDENTIAL" selected in proxy configuration.
  • TripAdvisor reviews are less frequent than Google Maps
  • Try expanding the date range (e.g., last_month instead of last_week)
  • The scraper filters by date AFTER fetching - if all reviews are old, result is 0

Timeout or slow runs?

  • Reduce maxReviewsPerBusiness (try 50 instead of 100)
  • Run fewer businesses per scrape
  • Use date filters to limit data

Pricing

This Actor charges per result (per review scraped).

$1 USD = 2,000 reviews at $0.0005 per review

ReviewsCost
100$0.05
500$0.25
1,000$0.50
5,000$2.50

Plus Apify platform compute costs (~$0.05-0.15 per run)


Support

  • Issues: Report via Apify Console or GitHub
  • Documentation: Apify Docs

Changelog

v0.0.21 (Current)

  • Focused on Google Maps and TripAdvisor platforms
  • Improved date filtering reliability
  • Updated default examples with McDonald's Times Square
  • Added comprehensive n8n workflow template

v0.0.20

  • Added date filters for periodic runs
  • Added sentiment and rating output filters
  • Improved TripAdvisor GraphQL scraper