TripAdvisor Reviews Scraper - Most Comprehensive avatar

TripAdvisor Reviews Scraper - Most Comprehensive

Pricing

from $0.04 / 1,000 reviews

Go to Apify Store
TripAdvisor Reviews Scraper - Most Comprehensive

TripAdvisor Reviews Scraper - Most Comprehensive

πŸ”₯ ~$0.05/1K reviews πŸ”₯ Scrape all reviews for any TripAdvisor business. Full review text, ratings, author profiles, trip types, and helpful votes. Accepts business URLs.

Pricing

from $0.04 / 1,000 reviews

Rating

0.0

(0)

Developer

Kai

Kai

Maintained by Community

Actor stats

0

Bookmarked

33

Total users

13

Monthly active users

6.2 hours

Issues response

6 days ago

Last modified

Share

Get the TripAdvisor reviews of any restaurant, hotel, attraction, or cruise. Each review has 32 fields: rating, title, full text, dates, trip type, language, reviewer details, category ratings, photos, and the owner's response. Filter by language, rating, trip type, month, publication date, and text. Sort by newest, detailed, or highest rating.

Read a few reviews or the full history of a place. A 20-review run takes about 2 seconds, and 1,000 reviews take about 5 seconds. Start with a TripAdvisor URL or a location ID. Starting at $0.04 per 1,000 reviews.

What can you do with it?

  • Reputation monitoring. Collect the new reviews of your places every day or week with a start date.
  • Competitor benchmarking. Compare ratings, category ratings, and owner response rates across hotels, restaurants, or attractions.
  • Sentiment and topic analysis. Feed review text, ratings, trip types, and languages into your models.
  • Complaint finding. Read only the 1- and 2-star reviews, or only the reviews that mention a topic such as "parking".
  • Traveler research. See what couples, families, solo travelers, or business travelers say about a place.
  • Owner response audits. Find the reviews that got a reply, read the replies, and see when the owner wrote them.
  • Seasonal analysis. Compare what guests say in summer and in winter with the publication month.
  • Market research by language. Read the reviews in one language, such as French or Japanese, to see how a local market sees a place.
  • Full review archives. Download every review of a place, also a place with more than 100,000 reviews, such as the Eiffel Tower.

What data does it extract?

DataWhen you get it
Review ID, rating (1 to 5), title, full textEvery review
Published date and visit month, as display text and as ISO datesEvery review
Review language, original language, and a translation flagEvery review
Review link, helpful votes, and a pinned flagEvery review
Business ID, name, link, and place type (restaurant, hotel, attraction, or ship)Every review
Reviewer name, member ID, profile link, total contributions, and verified flagEvery review
Reviewer avatar and hometownWhen the reviewer added them
Trip type (business, couples, family, friends, or solo)When the reviewer chose one. Most cruise reviews have none.
Category ratings, such as Value, Rooms, Service, and CleanlinessWhen the reviewer rated categories. Attraction reviews have none.
Photos with captionsWhen the reviewer added photos
Owner response with text, date, author, and roleWhen the owner replied. Mostly hotels.
Review tipsWhen the reviewer wrote a tip

TripAdvisor does not have every field for every review. A field without data is null or [].

Quick start

  1. Enter a TripAdvisor review-page URL or a location ID in Business URLs or location IDs.
  2. Set Maximum reviews per business. Use 0 to get all reviews.
  3. Click Start. Download the results as JSON, CSV, Excel, or HTML.

The same input as JSON:

{
"businesses": [
"https://www.tripadvisor.com/Restaurant_Review-g60745-d5572598-Reviews-Ostra-Boston_Massachusetts.html"
],
"maxReviews": 20
}

Examples by use case

The newest reviews of a place. Use a location ID instead of a URL if you have one. This is the default order:

{
"businesses": ["5572598"],
"maxReviews": 50
}

Every review of a place. This also works for the biggest places. The Eiffel Tower has about 144,000 reviews and takes about 10 minutes. Use 1,024 MB of memory or more for a run of more than a few thousand reviews:

{
"businesses": ["5572598"],
"maxReviews": 0
}

Monitor new reviews. Run this on a schedule and move the date forward each time. Use the id field to skip reviews that you already have:

{
"businesses": ["5572598"],
"maxReviews": 0,
"since": "2026-08-15"
}

Find complaints. Only 1- and 2-star reviews:

{
"businesses": ["5572598"],
"maxReviews": 0,
"rating": ["1", "2"]
}

Reviews about a topic. English reviews of a hotel that mention breakfast:

{
"businesses": [
"https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo-New_York_City.html"
],
"maxReviews": 100,
"language": "en",
"searchQuery": "breakfast"
}

Reviews from business travelers:

{
"businesses": ["93589"],
"maxReviews": 100,
"tripType": ["Business"]
}

Compare places. One run reads all the places. The dataset keeps the order of your list:

{
"businesses": ["5572598", "802686", "105127"],
"maxReviews": 200
}

The best-rated reviews first:

{
"businesses": ["5572598"],
"maxReviews": 100,
"sortBy": "highest"
}

Reviews in another language. Set language to a code such as fr, de, or ja:

{
"businesses": ["188151"],
"maxReviews": 100,
"language": "fr"
}

Summer reviews. Reviews that people published in June, July, and August:

{
"businesses": ["188151"],
"maxReviews": 200,
"months": ["6", "7", "8"]
}

TripAdvisor's detailed order. Reviews in the order that TripAdvisor calls "detailed":

{
"businesses": ["93589"],
"maxReviews": 100,
"sortBy": "detailed"
}

Owner replies. There is no filter for replies. Collect the reviews with the "Every review of a place" input, then keep the rows where ownerResponse is not null. ownerResponseDetail holds the reply date and the role of the person who replied.

Choose the businesses

Put one or more entries in businesses. Each entry is a location ID or a TripAdvisor review-page URL. You can mix both in one run.

  • Location ID. This is the number after -d in the URL. The URL .../Restaurant_Review-g60745-d5572598-Reviews-Ostra-Boston_Massachusetts.html has the location ID 5572598.
  • URL. The Actor accepts restaurant, hotel, attraction, and cruise review pages. Other TripAdvisor domains, such as tripadvisor.co.uk and tripadvisor.fr, work too. Page offsets such as -or10-, #REVIEWS, and query strings are fine. A link to one review (ShowUserReviews) works too.
  • Not accepted. A page without a -d number, such as a city page, has no location ID. The log shows Cannot parse location from input, and the other businesses still run.
{
"businesses": [
"https://www.tripadvisor.com/Restaurant_Review-g60745-d5572598-Reviews-Ostra-Boston_Massachusetts.html",
"https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo-New_York_City.html",
"https://www.tripadvisor.com/Attraction_Review-g60763-d105127-Reviews-Central_Park-New_York_City.html",
"https://www.tripadvisor.com/Cruise_Review-d25948295-Reviews-MSC_World_America"
],
"maxReviews": 5
}

The Actor reads the businesses in your order, so the reviews of each business come as one block in that order. A repeated business is read again. A business that fails does not stop the others.

Filter the reviews

Filters are combined. A review must match every filter that you set. Inside one filter, a review can match any of the values.

  • language. Use all for every language, or a code such as en, fr, de, or ja. The results include TripAdvisor's machine translations into that language. Use isTranslated and originalLanguage to keep only original reviews.
  • rating. Any combination of 1 to 5.
  • tripType. Any combination of Business, Couples, Family, Friends, and Solo.
  • months. The calendar months in which the review was published, as numbers from 1 to 12.
  • searchQuery. Text that the review must match.
  • since. The earliest publication date, as YYYY-MM-DD.

This example keeps English four- and five-star reviews from couples or families, published in January or February, that mention service:

{
"businesses": ["5572598"],
"maxReviews": 10,
"language": "en",
"rating": ["4", "5"],
"tripType": ["Couples", "Family"],
"months": ["1", "2"],
"searchQuery": "service",
"sortBy": "recent"
}

A blank since or language counts as not set. Some integrations send blank values for empty fields.

Choose the review order

sortBy sets the order. The default is recent.

ValueOrder
recentNewest first.
detailedTripAdvisor's detailed-reviews order. If TripAdvisor does not offer this order for a business, the Actor stops collecting reviews for that business.
highestFive-star reviews first, then four, three, two, and one. Newest first within each star level.

A since date always uses newest order, whatever sortBy says. TripAdvisor keeps a review that the owner pinned at the top of newest order. With since, the Actor skips a pinned review that is older than the date.

Input reference

Only businesses is required.

FieldTypeDefaultDescription
businessesstring[]requiredOne or more numeric location IDs or HTTPS TripAdvisor restaurant, hotel, attraction, or cruise review URLs.
maxReviewsinteger20Maximum unique reviews for each business. 0 collects all available reviews.
sortBystringrecentrecent, detailed for TripAdvisor's detailed-reviews order, or highest for the highest ratings first.
languagestringallall or a language code such as en, fr, de, or ja. Results include TripAdvisor's machine translations into that language.
ratingstring[]all ratingsAny combination of 1, 2, 3, 4, and 5.
tripTypestring[]all trip typesAny combination of Business, Couples, Family, Friends, and Solo.
sincestringnoneEarliest publication date in YYYY-MM-DD format. A since date uses newest order for every sortBy value.
monthsstring[]all monthsPublication month numbers from 1 through 12.
searchQuerystringnoneText that returned reviews must match.
proxyConfigurationobjectApify Proxy enabledOptional connection settings managed by Apify.

Repeated businesses and repeated filter values are accepted. Unknown input fields are ignored for compatibility. A since value that is not in YYYY-MM-DD format fails the run.

Output

Each item in the dataset is one review. The Overview table shows the review ID, business, rating, title, text, author, published date, and review link. Every field below is in every item. A field without data is null or [].

These fields are always empty: accommodationCategory is null, and reviewTips[].published is null. The empty fields stay so that existing integrations keep working.

Fields by topic

  • Review. ID, rating, title, text, and the review link. Helpful votes, the pinned flag, the review status, and the publishing platform.
  • Dates. The published date as display text (publishedDate) and as an ISO date (publishedDateISO), the creation date, and the visit month as text and as an ISO date.
  • Language. The language of the review as shown, its original language, a translation flag, and the translation type.
  • Trip. Trip type and the review tip.
  • Category ratings. A label and a value for each category the reviewer rated.
  • Reviewer. Name, hometown, total contributions, helpful votes, avatar, profile link, member ID, user name, and verified flag.
  • Photos. ID, URL, and caption of each reviewer photo.
  • Owner response. The reply text, and the reply's ID, language, date, author, and role.
  • Business. Location ID, name, link, and place type.
  • Run. The UTC time at which the Actor read the review.

Review example

This example is a hotel review with category ratings, a photo, a tip, and an owner response. Square brackets mark values removed from the documentation.

Field groups

GroupRoot fields
Reviewid, title, text, rating, helpfulVotes, isPinned, status, publishPlatform, reviewUrl, tipText, reviewTips
DatespublishedDate, publishedDateISO, createdDate, dateVisited, dateVisitedISO
Languagelanguage, originalLanguage, isTranslated, translationType
Trip and ratingstripType, subratings
Reviewerauthor
Photosphotos
Owner responseownerResponse, ownerResponseDetail
BusinesslocationId, businessName, businessUrl, placeType, accommodationCategory
RunscrapedAt

Field notes

  • id is the TripAdvisor review ID. Use it to remove reviews that you already have, for example when you run a monitor on a schedule.
  • publishedDate is TripAdvisor's display text, such as "October 1, 2026". publishedDateISO and createdDate use YYYY-MM-DD.
  • dateVisited has only the month. In dateVisitedISO, the day is always 01.
  • language is the language of the review as shown. With a language filter, TripAdvisor can show a machine translation. isTranslated is true then, and originalLanguage is the language that the reviewer wrote in.
  • isPinned is true for a review that the owner pinned. TripAdvisor shows it first in newest order, whatever its date.
  • ownerResponse and ownerResponseDetail.text hold the same text. ownerResponseDetail adds the date, the author, and the author's role.
  • author.displayName is Anonymous when TripAdvisor gives no name. author.helpfulVotes is null in current data.
  • placeType is EATERY for restaurants, ACCOMMODATION for hotels, ATTRACTION for attractions, and SHIP for cruises.
  • publishPlatform is null in current data.
  • reviewUrl and businessUrl always start with https://www.tripadvisor.com, also when you give a URL from another TripAdvisor domain.

FAQ

How many reviews can I get?

There is no fixed limit. Set maxReviews to 0 to get all the reviews that TripAdvisor lists for a business. For a place with very many reviews, the run log tells you when the Actor reads the place in smaller parts. The reviews from that point on come by star level, newest first within each level. TripAdvisor adds and removes reviews all the time, so your count can differ by a few from the count on the TripAdvisor page.

Why did I get fewer reviews than maxReviews?

maxReviews is an upper limit. The business can have fewer reviews, and your filters can remove some. The Actor also removes repeated review IDs. A since date can remove older reviews.

How do I find the location ID?

Open the place on TripAdvisor. The ID is the number after -d in the URL. You can also give the whole URL.

How do I get only the new reviews?

Set since to the date of your last run, and run the Actor on a schedule. Use the id field to remove reviews that you already have. Reviews that TripAdvisor shows with a date before since are not returned.

Can I get the place details, such as the address, rating, and ranking?

This Actor returns reviews. To get the places themselves, use TripAdvisor Places Scraper.

A feature or field that I need is missing. What can I do?

Tell us in the Issues tab. Describe what you need and give an example business.

Where can I report a problem?

Open an issue in the Issues tab. Include the run ID and the input, so that we can reproduce it.

Similar Actors

  • Yelp Reviews Scraper. Yelp reviews and business details from business URLs, aliases, or business IDs.
  • Google Maps Reviews Scraper. Google Maps reviews with place context, from place URLs or Place IDs.
  • Glassdoor Reviews Scraper. Glassdoor company reviews with ratings, pros and cons, employment details, and employer responses.
  • G2 Scraper. G2 software reviews, products, analytics, comparisons, and discussions.