TripAdvisor Scraper
Pricing
from $1.20 / 1,000 results
TripAdvisor Scraper
Collect Tripadvisor hotels, restaurants and attractions with name, address, ratings and rank, reviews, prices, amenities, contact info, awards and AI review summaries. No login needed. Great for travel research, competitor analysis and local business lead lists.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Data WiKi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Features
Share
🚀 What is Tripadvisor Scraper?
Tripadvisor Scraper is an Apify Actor that finds public Tripadvisor hotels, restaurants and attractions and saves one row per place. You give it a keyword with a city, a destination list link or a single place link. Each row holds rating, rank, price range, address, phone and website.
- Start from a keyword or a city: type "pizza in Rome" or paste a list link, so you do not need place links to begin.
- One row per place: rating, review count, rank, price, address, coordinates and awards sit side by side, ready for a spreadsheet.
- Details that fit the place type: amenities and booking offers for hotels, cuisines and opening hours for restaurants, duration and highlights for attractions.
- Reviews are optional: set Reviews per place and the newest reviews are added inside each place row.
- No Tripadvisor account: the Actor reads pages that any visitor can see.
Click Try for free, type a search such as "hotels in Paris" and press Start.
📊 What data can you extract from Tripadvisor?
Every row describes one place, and you can export the results as JSON, CSV, Excel, XML or HTML. The example values below are made up for illustration and do not describe a real place.
| Field | Description | Example |
|---|---|---|
id | Tripadvisor place ID | 1000001 |
type | HOTEL, RESTAURANT or ATTRACTION | RESTAURANT |
category | hotel, restaurant or attraction | restaurant |
name | Place name | Example Trattoria |
url | Link to the place on Tripadvisor | https://www.tripadvisor.com/Restaurant_Review-g100000-d1000001-Reviews-Example_Trattoria-Example_City.html |
description | Place description, when the page has one | Example description of a family-run pizzeria. |
rating | Overall rating | 4.5 |
numberOfReviews | Number of reviews on Tripadvisor | 1200 |
ratingHistogram | Review counts per star level | {"5": 800, "4": 280, ...} |
subRatings | Category ratings such as Service or Value, when shown | {"Service": 4.5, ...} |
rankingPosition | Position in the destination ranking | 12 |
rankingTotal | Places in that ranking | 9000 |
rankingString | Ranking as Tripadvisor words it | #12 of 9,000 Restaurants in Rome |
priceLevel | Price symbol | $ |
priceRange | Price range text | $10 - $30 |
address | Address as one line | Via Esempio 1, Rome, Lazio, 00100, Italy |
addressObj | Street, city, state, postal code and country | {"city": "Rome", ...} |
latitude | Latitude | 41.9 |
longitude | Longitude | 12.5 |
phone | Phone number | +39 06 0000 0000 |
email | Email, only when the place page shows an email link | null |
website | Website, only when the place page shows a website link | https://example.com |
image | Main image link | https://example.com/photo.jpg |
awards | Awards such as Travelers' Choice | ["Travelers' Choice 2024"] |
aiReviewsSummary | Tripadvisor's AI review summary, when published | Example summary of what visitors say. |
reviewTopics | Tagged review topics, when published | [{"topic": "Pizza", ...}] |
geoBreadcrumbs | Location path from region to city | ["Europe", "Italy", "Lazio", "Rome"] |
searchQuery | The search entry that produced the row | pizza in Rome |
scrapedAt | When the row was read (UTC) | 2026-11-07T10:00:00Z |
The Actor also writes keys that are returned in the rows but not listed in the dataset schema's field list. They are filled only when the place type has them and the page shows them.
| Key | Place type | What it holds |
|---|---|---|
webUrl | all | Copy of url |
hotelClass | hotels | Star class |
amenities, roomFeatures, roomTypes | hotels | Property amenities, room features and room types |
languagesSpoken, nearbyAirports, walkScore | hotels | Languages spoken, nearby airports and the walkability grade |
lowestPrice, highestPrice, priceCurrency, priceDates | hotels | Lowest and highest offer price, currency and the check-in and check-out dates the prices belong to |
offers | hotels | One entry per booking provider with price, taxes, fees, currency and cancellation note |
priceStatus | hotels | Whether the offers were complete, partial or missing |
cuisines, mealTypes, features, dietaryOptions | restaurants | Cuisines, meal types, features and dietary options |
openingHours, openNow, acceptsReservations, menuUrl, michelin | restaurants | Opening hours by day, open-now flag, reservations, menu link and MICHELIN note |
duration, highlights, priceFrom, openingHours | attractions | Visit duration, highlights, starting price and opening hours |
reviews, reviewInsights, reviewsRetrieved, reviewsNote | when reviewsPerPlace is above 0 | The reviews, a summary of them, how many were read and a note when Tripadvisor showed fewer |
searchMatch | keyword searches that matched one place | The place name and location the keyword was matched to |
error | failed places | Why the place could not be read |
Hotel prices are read for the default dates that Tripadvisor shows, and the dates are saved in priceDates. The address, phone and website fields turn the rows into tripadvisor business listings that you can sort by rank or filter by rating. Restaurant rows give you tripadvisor restaurants data with cuisines and meal types. Hotel rows give you tripadvisor hotels data with amenities and offers. Together the rows form a tripadvisor dataset with one row per place.
Where to look for common needs:
- Contact:
phone,websiteand, rarely,emailhold the tripadvisor contact details of a place. - Maps:
latitude,longitudeandaddressObjare the tripadvisor coordinates and address parts. - Prices:
priceLevelandpriceRangehold the tripadvisor price range of a place. - Hotel features:
amenities,roomFeaturesandroomTypeslist the tripadvisor hotel amenities and rooms. - Food:
cuisines,mealTypesanddietaryOptionslist the tripadvisor restaurant cuisines and diets. - Hours:
openingHoursstores the tripadvisor opening hours by weekday for restaurants and attractions. - Reputation:
awardsis the tripadvisor awards data.aiReviewsSummaryis the tripadvisor ai review summary when Tripadvisor publishes one.
💡 Use cases for Tripadvisor data
- Build a restaurant lead list: search a city with the restaurants category and keep
name,address,phoneandwebsite. Theemailkey is empty unless the page shows one. The same fields work as a hotel lead list when you pick the hotels category. - Run a hotel competitor analysis: compare
rating,rankingPosition,priceRangeandamenitiesfor the hotels in one city, then sort by rank. Restaurant competitor analysis works the same way withcuisinesandpriceLevel. - Hotel price comparison:
offers,lowestPriceandhighestPriceshow what each booking provider listed for the default dates. Run the same hotels on a schedule for hotel price tracking, and remember the dates stay the default ones Tripadvisor shows. - Research the restaurant market:
cuisines,priceLevelandratingshow which kinds of places a city has and how they score. That supports restaurant market research before you open or supply one. - Track Tripadvisor rankings: schedule a weekly run and compare
rankingPosition,ratingandnumberOfReviewsbetween runs. Use it for tripadvisor hotel rankings of one city. The same rows give tripadvisor restaurant rankings for the places you supply. KeepratingandscrapedAtover time to monitor restaurant ratings. - Plan a trip or build a map: attraction rows carry
duration,highlights,priceFromand coordinates, which makes a tourist attractions dataset for one destination. AddopeningHoursfor destination research for trip planning. Uselatitudeandlongitudeas a points of interest dataset. - Find where to eat: sort restaurant rows by
rankingPositionto find top restaurants in a city. ReaddietaryOptionsto find vegetarian restaurants in a city. Tripadvisor lists these as tripadvisor places to eat. Filterawardsto find travelers choice award winners. - Build your own place database: run one search per city and store the rows in a tripadvisor database of your own. Keep the restaurants rows as a restaurant database by city. The hotels rows work as a hotel database by city.
🛠️ How to scrape Tripadvisor places
To scrape data from Tripadvisor with this Actor, follow these steps. Because it works as a tripadvisor search scraper, you can start from a keyword instead of a place link.
- Create a free Apify account and open Tripadvisor Scraper in Apify Console.
- Add one entry per line to Search queries or TripAdvisor URLs (
search): a keyword such as "hotels in Paris", a destination list link or a place link. - Choose a Category filter (
category) when the search is about one kind of place. - Set Max items per search (
maxItems) and keep it low for a first test. - Leave Full place details (
fullDetails) on for the complete record, and optionally set Reviews per place (reviewsPerPlace). - Click Start, then open the Output tab and download the dataset as JSON, CSV, Excel, XML or HTML.
How to scrape Tripadvisor restaurants
Enter a search such as "pizza in Rome" and set category to restaurants. Used as a tripadvisor restaurant scraper, it returns cuisines, meal types, opening hours and the ranking text in every row.
How to scrape Tripadvisor hotels
Enter "hotels in Paris" or a hotel list link and set category to hotels. As a tripadvisor hotel scraper it adds amenities and booking offers for the default dates. The tripadvisor hotel prices sit in offers.
How to scrape Tripadvisor attractions
Set category to attractions and use a destination such as a city list link. As a tripadvisor attractions scraper it adds duration, highlights and starting price.
How to export Tripadvisor data
Open the dataset in the Output tab, choose a format in the export menu and download the file for your tripadvisor dataset download. To export Tripadvisor places to CSV, pick CSV in the same menu. The Excel and CSV files open as one table with one row per place.
💰 How much does it cost to scrape Tripadvisor?
The Actor uses pay per event. The main_result event is charged once for every row saved to the default dataset, and the apify-actor-start event is charged once per run at $0.00005. Apify platform usage (compute) is billed on top of the events above.
| Plan tier | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.0018 | $1.80 |
| Bronze | $0.0016 | $1.60 |
| Silver | $0.0014 | $1.40 |
| Gold, Platinum, Diamond | $0.0012 | $1.20 |
Example: 1,000 rows on the Free tier cost 1,000 x $0.0018 = $1.80, and 500 rows on the Gold tier cost 500 x $0.0012 = $0.60, each plus the $0.00005 start event. A row is one place, so reviews inside a row cost nothing extra. A row that only reports an error is also saved to the dataset and charged. Check the Pricing tab for the current rates and set a maximum spend per run to cap the total. The Actor is configured with 1024 MB of memory.
⬇️ Input
Only Search queries or TripAdvisor URLs (search) is required. The example below collects up to 30 restaurants for "pizza in Rome" with full details and no reviews.
{"search": ["pizza in Rome"],"category": "restaurants","maxItems": 30,"reviewsPerPlace": 0,"fullDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
| Field | What it does |
|---|---|
search (required) | One keyword, destination list link or place link per entry. A comma does not split an entry, so "hotels in Paris, France" is one search. |
category | all (default), hotels, restaurants or attractions. It narrows keyword and destination searches. |
maxItems | Most places collected per search entry. Default 30, 0 collects everything Tripadvisor lists, maximum 10000. |
reviewsPerPlace | Reviews added to each place row, 0 to 1000. Default 0 means no reviews. |
fullDetails | On by default. Opens each place page for the full record. Off gives shorter rows faster. |
proxyConfiguration | Optional. Leave the default to start without a proxy. |
💡 With
categoryset toall, a destination search is split across the restaurants, hotels and attractions lists, so each list gets about a third ofmaxItems.
💡 Start with a small
maxItemsand check the first rows before a large run.
⚠️ A
reviewsPerPlaceabove 0 needs the place pages, sofullDetailsis switched on automatically.
⚠️ Reviews contain reviewer names and locations, which are personal data. Keep
reviewsPerPlaceat 0 when you only need place facts.
⬆️ Output
The scraped results are shown as a dataset in the Storage tab. The table view is for convenience and doesn't show all the fields. You can export the data as JSON, CSV, Excel, XML or HTML. The sample continues from the input above, is shortened, and uses made-up values.
{"id": "1000001","type": "RESTAURANT","category": "restaurant","name": "Example Trattoria","url": "https://www.tripadvisor.com/Restaurant_Review-g100000-d1000001-Reviews-Example_Trattoria-Example_City.html","webUrl": "https://www.tripadvisor.com/Restaurant_Review-g100000-d1000001-Reviews-Example_Trattoria-Example_City.html","description": "Example description of a family-run pizzeria.","address": "Via Esempio 1, Rome, Lazio, 00100, Italy","addressObj": { "street": "Via Esempio 1", "city": "Rome", "state": "Lazio", "postalCode": "00100", "country": "Italy" },"latitude": 41.9,"longitude": 12.5,"phone": "+39 06 0000 0000","email": null,"website": "https://example.com","rating": 4.5,"numberOfReviews": 1200,"ratingHistogram": { "5": 800, "4": 280, "3": 80, "2": 25, "1": 15 },"subRatings": { "Food": 4.5, "Service": 4.5, "Value": 4.0 },"rankingPosition": 12,"rankingTotal": 9000,"rankingString": "#12 of 9,000 Restaurants in Rome","priceLevel": "$","priceRange": "$10 - $30","cuisines": ["Italian", "Pizza"],"mealTypes": ["Lunch", "Dinner"],"dietaryOptions": ["Vegetarian Friendly"],"openingHours": { "Monday": ["12:00-23:00"], "Tuesday": ["12:00-23:00"] },"openNow": true,"acceptsReservations": true,"image": "https://example.com/photo.jpg","geoBreadcrumbs": ["Europe", "Italy", "Lazio", "Rome"],"awards": ["Travelers' Choice 2024"],"aiReviewsSummary": "Example summary of what visitors say.","reviewTopics": [{ "topic": "Pizza", "sentiment": "Excellent", "summary": "Example topic summary." }],"searchQuery": "pizza in Rome","scrapedAt": "2026-11-07T10:00:00Z"}
Place row with reviews
With reviewsPerPlace set to 1, the same row also holds the keys below. The sample is shortened and made up.
{"reviewInsights": {"reviewsAnalysed": 1,"averageRating": 5.0,"ownerResponseRate": 0.0,"avgDaysToRespond": null,"machineTranslatedShare": 0.0,"negativeShare": 0.0,"tripTypes": { "Couples": 1 }},"reviews": [{"id": "900000001","url": "https://www.tripadvisor.com/ShowUserReviews-g100000-d1000001-r900000001-Example_Trattoria-Example_City.html","rating": 5,"title": "Example review title","text": "Example review text written for this README. It is not a real review.","publishedDate": "2026-10-20","visitDate": "2026-10","tripType": "Couples","language": "en","isMachineTranslated": false,"subRatings": { "Food": 5 },"author": "Example Traveler","authorUrl": null,"authorLocation": "Sampletown","authorContributions": 12,"helpfulVotes": 0,"photoCount": 0,"isPinnedFavorite": false,"wordCount": 13,"ownerResponded": false,"ownerResponse": null,"ownerResponseBy": null,"ownerResponseDate": null,"daysToRespond": null}],"reviewsRetrieved": 1}
A RUN_SUMMARY record in the key-value store lists totalItems, ok, errors, requests and durationSecs for the run.
⚠️ Limitations and error handling
- Only public pages are read. Nothing that needs a Tripadvisor login is collected.
- A search returns the places Tripadvisor lists for it. If a list ends early, the log says how many places it held.
- Hotel prices are for the default dates Tripadvisor shows. There is no date input, so the Actor cannot price a stay you choose.
- Reviews come newest first, without filters. Tripadvisor may show fewer reviews to a visitor who is not logged in than the place count says, and
reviewsNotethen says so. - Fields such as
email,website,description,priceRangeandopeningHoursdepend on what the place page shows and can benull. - With
fullDetailsoff, rows are shorter:id,type,category,name,url,webUrl,address,latitude,longitude,phone,rating,numberOfReviews,priceLevel,priceRange,cuisines,searchQueryandscrapedAt. A list entry without a name or rating still gets its place page opened. - A place that cannot be read is saved as a row with an
errornote,url,id,nameandsearchQuery. That row counts as a result and is charged like any other row. - A keyword that matches no place, or a link that is not a supported Tripadvisor link, produces no row. The log names the entry.
- If a required input is missing or invalid, the run stops with the status
Input error: ...and a short reason. - When Tripadvisor rejects requests, the Actor pauses, retries and switches to another connection. If requests are still refused, the run ends with the rows saved so far.
- If you set a maximum spend per run, the Actor stops cleanly when it is reached.
The priceStatus key of a hotel row has one of these values.
| Value | Meaning |
|---|---|
complete | All offers were read |
partial (TripAdvisor had not finished collecting offers) | Some offers were still loading when the Actor read them |
no offers shown by TripAdvisor for the default dates | No offers appeared for the default dates |
🔌 Integrating Tripadvisor Scraper with other apps
You can start Tripadvisor Scraper from the Apify API, on a schedule or from a webhook, and send the rows on to other tools. As an Apify tripadvisor scraper it runs on the Apify platform, so these options are built in. For a recurring check, run the same search on a schedule and compare rankingPosition, rating or lowestPrice between runs.
- Apify integrations, including Make and Zapier
- Webhooks to trigger your own code when a run finishes
- The Apify API with the Actor id
data_wiki/tripadvisor-scraper; see the API tab for ready-made code - AI agents can call this Actor through the Apify MCP server
🔗 Other travel and feedback scrapers by data_wiki
| Actor | What it extracts | When to use it |
|---|---|---|
| Tripadvisor Review Scraper | One row per review, plus tables for places, reviewers, photos, owner replies, sub-ratings and input status; takes place links or place ids | When you need the reviews themselves, with filters for stars, language, keyword, traveler type or month |
| Tripadvisor Reviews Scraper | One row per review with a place block on each row; takes place links | When you want reviews from place links filtered by rating, date or language |
| Airbnb Scraper | Airbnb listings for a city or link: prices, hosts, amenities, ratings | When you compare the hotels you collected with short-term rentals |
| Contact Details Scraper | Emails, phone numbers and social links from a list of websites | When you want emails for the websites found in the website field |
If you already have place links and want what guests wrote, you can export reviews filtered by stars, language or keyword or read reviews from place links with date and rating filters. To see the short-term stays in the same city, collect Airbnb listings for a destination. The websites in your place rows can go straight into a tool that finds emails and social links on websites.
⚖️ Is it legal to scrape Tripadvisor?
Tripadvisor Scraper only collects data that is public on Tripadvisor and does not read private data or anything behind a login. Place rows hold business contact details such as a phone number or address, which can identify a sole trader, and reviews hold reviewer names and locations. Collect personal data only with a legitimate reason, follow rules such as the GDPR and CCPA, respect Tripadvisor's terms and the copyright of review text and photos, and do not use the data to profile or contact individual reviewers. This is not legal advice; consult a lawyer if you are unsure. See is web scraping legal and ethical web scraping for background.
❓ FAQ
Do I need a Tripadvisor account or API key?
No. As a tripadvisor data scraper it reads public pages, so you only need an Apify account. For programmatic access you use the Apify API with your Apify token.
Which Tripadvisor Actor should I use?
It depends on what one row should be. Tripadvisor Scraper outputs one row per place and finds places from a keyword, a city list or a place link. Tripadvisor Review Scraper outputs one row per review with filters and extra tables, and takes place links or place ids. Tripadvisor Reviews Scraper outputs one row per review with a place block on each row, and takes place links.
How many places can Tripadvisor Scraper collect?
As many as Tripadvisor lists for each search, up to maxItems per entry. Set maxItems to 0 to collect everything the list shows. Run a small test first to see how many places a search returns.
Does Tripadvisor Scraper collect reviews?
Only if you ask for them. Set reviewsPerPlace between 1 and 1000 and the newest reviews are added inside each place row. They cannot be filtered by stars, language or date. For filtered reviews use one of the review Actors.
Are error rows charged?
Yes. A place that cannot be read is saved as a row with an error note, and every row in the default dataset is charged. Check the first rows of a test run and lower maxItems if many rows show errors.
Can I get hotel prices for my own dates?
No. Hotel offers are read for the default dates Tripadvisor shows, and priceDates tells you which dates they belong to.
Is there a Tripadvisor API for this?
You can run the Actor and read its dataset through the Apify API. It is not an official Tripadvisor API.
Do I need proxies?
No. The Actor starts without a proxy, retries when Tripadvisor rejects a request and switches to another connection. You can also choose a proxy in the input.
Can I get email addresses?
Only when the place page shows an email link, and most pages do not. Phone and website are filled more often. Private or hidden contact data is never collected.
Can I use Tripadvisor Scraper through an MCP server?
Yes. AI agents can find and call the Actor through the Apify MCP server with the same input as above.
💬 Your feedback
Found a problem or need another field? Open an issue in the Issues tab of the Actor. Need a custom solution? Contact hello.datawiki@gmail.com.