Tripadvisor Place Details Scraper
Pricing
from $0.70 / 1,000 location-scrapeds
Tripadvisor Place Details Scraper
Scrape the full Tripadvisor record for any hotel, restaurant or attraction. Just add URLs and get the rating, reviews per star and language, popular mentions, ranking, sub-ratings, amenities, price band, coordinates, address, phone, website and opening hours. $1.60 per 1,000 places.
Pricing
from $0.70 / 1,000 location-scrapeds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
What is Tripadvisor Place Details Scraper?
Give Tripadvisor Place Details Scraper a list of Tripadvisor links or ids and you get one row per place: what it is, how it's rated, where it ranks locally and how to contact it. It works for hotels, restaurants, attractions and destinations, and a list of 900 ids finishes in about 12 seconds.
This is the enrichment step. Use it when you already have the places, from your own list or from one of the Tripadvisor city scrapers, and want the full record behind each. Reviews themselves come from Tripadvisor Reviews Scraper.
Why pick this one:
- You get the review breakdown most place data leaves out: the count for each star from one to five, the count per review language, and the phrases travellers mention most. All three were filled on 5 of 5 hotels and 4 of 4 attractions we measured.
- Rankings arrive as numbers and as Tripadvisor's sentence. "#118 of 587 hotels in New York City" is also
rankingPosition118 andrankingDenominator587, ready to sort. - Hotels come with six sub-ratings, the amenity list (20 to 59 per hotel in the sample), room features, languages spoken, style rankings and the Travellers' Choice award. Restaurants come with four sub-ratings, dietary options, meal types and dining options.
- It's quick: a list of 900 ids took 11.9 seconds with the extra details, which is about 4,500 ids a minute.
- $1.60 per 1,000 places on the Free plan and $0.70 on Business, usage included. A place that can't be read costs you nothing.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 19 of 19 live checks on its inputs and filters passed on 7 October 2026
- 15 places run the same day, hotels, restaurants and attractions: 14 places, 1 error row
- Charges checked against the 14 places
- A place that can't be read gets an uncharged row saying why
The basics are there too:
- Get the name, description, rating and total review count for each place on your list
- Collect coordinates, full address, phone, email and official website
- Read the hotel class, the price band and the nightly price range Tripadvisor shows
- Get restaurant cuisines and opening hours per day
- See the neighbourhoods a place sits in and its parent city, region and country
- Look a place up by its Tripadvisor address or by numeric id
- Download the records as JSON, CSV, Excel, XML or HTML
What data do you get for each place?
| Field | Description |
|---|---|
| 🏷️ Name | The place's name on Tripadvisor |
| Category | Hotel, restaurant, attraction or destination |
| ⭐ Rating | The overall score out of five |
| Review count | How many reviews the place has |
| 🥇 Ranking | Position, total and the ranking sentence |
| 🛎️ Hotel class | The star class, where one applies |
| 💷 Price band | The price level and the nightly range |
| 📍 Coordinates | Latitude and longitude |
| 🏠 Address | Street, city, state, postcode and country |
| ☎️ Contact | Phone, email and official website |
| 🍽️ Cuisines | Restaurant cuisines |
| 🕐 Opening hours | Per day, as clock times |
| 🎟️ Entry fee | Whether an attraction charges, where Tripadvisor says |
| Neighbourhoods | The areas a place sits in |
| Ancestors | Parent city, region and country |
| 🖼️ Photo | The place's lead image |
| 📊 Rating breakdown | Reviews per star, one to five, and per review language |
| 💬 Popular mentions | The phrases travellers mention most in reviews |
| Sub-ratings | Cleanliness, location, rooms, service, sleep quality and value for hotels. Food, service, value and atmosphere for restaurants |
| 🛏️ Amenities | Hotel amenities, room features, room types and languages spoken |
| 🏆 Award | The hotel's Travellers' Choice award and year |
| 🥗 Restaurant options | Dietary options, meal types and dining options |
How much does it cost to scrape Tripadvisor place details?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.001 | $0.001 | $0.001 | $0.001 |
location-scraped, per place returned | $0.0016 | $0.00096 | $0.00085 | $0.0007 |
Enterprise plans pay the Business price.
$1.60 per 1,000 places on the Free plan, $0.70 on Business. Proxy usage and platform usage are inside that price, and the extra details don't cost more.
- A list of 1,000 places: $0.001 + 1,000 × $0.0016 = $1.601 ($0.70 on Business).
- A list of five: $0.001 + 5 × $0.0016 = $0.009 ($0.0045 on Business).
With the $5 of monthly credits on Apify's Free plan you can look up about 3,100 places before paying anything.
How to scrape Tripadvisor place details
- Sign up for Apify, which is free, and open Tripadvisor Place Details Scraper.
- Paste your Tripadvisor page addresses or location ids into the list of places.
- Press Start.
- Download the records as Excel, CSV or JSON when the run finishes.
There's nothing else to set. One switch is on by default, and you'd only touch it to slim the row down.
⬇️ Input
You give it Tripadvisor page addresses or numeric location ids, mixed however you like. If your list lives in a file or a Google Sheet, load it through "Start URLs (bulk upload)". Both inputs are combined.
"Include rating breakdown, mentions and amenities" is on by default. It adds the rating breakdown, popular mentions, sub-ratings, amenities and the other columns marked Extra in the output table. Turn it off if you want the basic record only.
There's one limit, "Maximum places for the whole run". Leave it at 0 and your whole list is read. You aren't charged for anything past the cap when you set one.
A single hotel
{"locations": ["https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo_New_York-New_York_City_New_York.html"]}
A mixed batch by id
{"locations": ["93589", "1073239", "188151", "297704"]}
For developers
locationsandstartUrlsare merged.maxItems(default 0, no cap) stops the run after that many places.includeExtraDetails(default true) controls the Extra columns. With it off the row is the basic record.maxConcurrency(default 32, from 1 to 32) is the number of requests in flight across the run. Drop it if a run reports errors. At 1 the run goes strictly one at a time, with the same rows in the same order.delayMs(default 0) is a pause before each request, in milliseconds.- Each row is saved as soon as it's read. A run that Apify interrupts and restarts picks up where it stopped, and no place is saved or charged twice.
⬆️ Output
You get one row per place. This one is a full hotel record with the extra details on.
{"id": "93589","locationId": "93589","input": "93589","url": "https://www.tripadvisor.com/Hotel_Review-g60763-d93589-Reviews-The_Michelangelo_New_York-New_York_City_New_York.html","scrapedAt": "2026-09-12T17:58:11.904Z","name": "The Michelangelo New York","category": "Hotel","rating": 4.5,"ratingScale": 5,"totalReviews": 5211,"rankingText": "#118 of 587 hotels in New York City","rankingPosition": 118,"rankingDenominator": 587,"stars": 4,"priceLevel": "$$$$","priceText": "$268 - $959","priceMin": 268,"priceMax": 959,"lat": 40.761528,"lng": -73.98261,"street": "152 W 51st St","city": "New York City","state": "NY","postcode": "10019","country": "United States","phone": "12127651900","website": "https://www.michelangelohotel.com/","timezone": "America/New_York","neighborhoods": ["Theater District", "Midtown"],"tags": ["Manhattan", "Mid-range"],"photoUrl": "https://media-cdn.tripadvisor.com/media/photo-o/0a/22/4a/e8/mezzanine.jpg","ratingDistribution": { "1": 81, "2": 109, "3": 293, "4": 1127, "5": 3605 },"reviewCountByLanguage": { "en": 4806, "it": 168, "pt": 70, "es": 53, "fr": 37 },"reviewKeywords": ["times square", "great location", "central park", "rooms are large", "junior suite"],"subRatings": [{ "name": "Cleanliness", "rating": 4.71 }, { "name": "Location", "rating": 4.88 }, { "name": "Rooms", "rating": 4.62 },{ "name": "Service", "rating": 4.56 }, { "name": "Sleep quality", "rating": 4.68 }, { "name": "Value", "rating": 4.33 }],"amenities": ["Paid private parking on-site", "Free High Speed Internet (WiFi)", "Fitness Center with Gym / Workout Room", "Bar / lounge"],"roomFeatures": ["Bathrobes", "Air conditioning", "Room service", "Minibar"],"roomTypes": ["Non-smoking rooms", "Suites", "Family rooms"],"languagesSpoken": ["English", "French", "Spanish", "German", "Italian"],"hotelStyles": [{ "name": "Romantic", "rank": 42 }, { "name": "Quiet", "rank": 23 }],"awardType": "COE","awardYear": 2026,"dietaryRestrictions": null,"mealTypes": null,"diningOptions": null}
| Column | Meaning |
|---|---|
category, categoryKey, subcategories, locationType | What the place is: hotel, restaurant, attraction or destination, and Tripadvisor's finer classes |
description | The place's description |
rawRanking | Tripadvisor's underlying popularity score behind the ranking |
rankingPosition, rankingDenominator, rankingCategory, rankingText, rankingGeo, rankingGeoId | The place's rank, what it is ranked among, and where |
stars, starsAttribution | Hotel class, and who awarded it |
priceLevel, priceText, priceMin, priceMax | Price band ($ to $$$$) and the price range Tripadvisor shows |
address, street, city, state, postcode, country, locationString | The address, whole and in parts |
timezone, neighborhoods, ancestors | The place's timezone, its neighbourhoods, and the regions it sits in |
phone, email, website, writeReviewUrl | Contact details as published, and the page for writing a review |
cuisines | Restaurant cuisines |
tags | Tripadvisor's tags for the place, such as the area and price style |
openingHours, openNowText | Opening hours by day, and Tripadvisor's open-now wording |
hasFee | Whether an attraction charges for entry, where Tripadvisor says |
isClosed, isLongClosed | Closed for good, or closed for a long period |
photoUrl, photoCaption | The lead photo and its caption |
isPartialRecord | true when Tripadvisor's full place record was not available and the row has the core details only (see the limits in the FAQ). false on a full row |
ratingDistribution | Extra. Reviews per star: {"1": …, "5": …} |
reviewCountByLanguage | Extra. Reviews per language code, most first (en, fr, zh-CN …) |
reviewKeywords | Extra. The popular mentions Tripadvisor shows above the reviews, up to 20 |
subRatings | Extra. {name, rating} per aspect, out of five: six for hotels, four for restaurants |
amenities, roomFeatures, roomTypes, languagesSpoken | Extra, hotels. All the amenities listed, highlighted or not |
hotelStyles | Extra, hotels. The styles the hotel ranks for (Romantic, Quiet, Classic …) and its rank in the city for each |
awardType, awardYear | Extra, hotels. The Travellers' Choice award (COE, or BOB for Best of the Best) and its year. Null when the hotel has none |
dietaryRestrictions, mealTypes, diningOptions | Extra, restaurants. Dietary options, meals served, and dining options such as reservations, seating or cards accepted |
input, error | What you asked for and, on a row for a place that could not be read, why |
How often the extra columns are filled
We measured this on 4 October 2026 across 5 hotels, 2 restaurants, 4 attractions and 1 destination. A dash means the column doesn't apply to that kind of place and is always empty there.
| Column | Hotels | Restaurants | Attractions | Destinations |
|---|---|---|---|---|
ratingDistribution | 5 of 5 | 2 of 2 | 4 of 4 | - |
reviewCountByLanguage | 5 of 5 | 2 of 2 | 4 of 4 | - |
reviewKeywords | 5 of 5 (12 to 20 each) | 1 of 2 | 4 of 4 (19 to 20 each) | - |
subRatings | 5 of 5 (6 each) | 2 of 2 (4 each) | - | - |
amenities, roomFeatures, roomTypes, languagesSpoken | 5 of 5 (20 to 59 amenities) | - | - | - |
hotelStyles | 5 of 5 (8 to 10 each) | - | - | - |
awardType, awardYear | 3 of 5 | - | - | - |
dietaryRestrictions | - | 1 of 2 | - | - |
mealTypes, diningOptions | - | 2 of 2 | - | - |
When you see an empty value, Tripadvisor shows nothing there for that place. The restaurant without mentions has eight reviews, and a hotel without an award hasn't won one.
How many places can you get, and how fast?
| Run | Places | Time | Charge on the Free plan |
|---|---|---|---|
| One hotel | 1 | 2.5 s | $0.0026 |
| 10 places of mixed kinds, with the extra details | 10 | 3.6 to 5.5 s | $0.017 |
| 900 ids, 569 of them real places, with the extra details | 569, plus 331 error rows | 11.9 s | $0.9114 |
That works out at about 4,500 ids a minute with the extra details (4 October 2026). Without them the same list took 8.4 seconds on 3 October, about 6,400 a minute. The times are whole runs on Apify, start-up included, and the 331 ids that weren't real places cost nothing.
Your list can be as long as you like. If you only want to try it on part of a list, set the run-wide maximum.
Use it from a pipeline
You'll probably run this behind something else: a venue list in a spreadsheet, a CRM, or the output of a city scrape. POST https://api.apify.com/v2/acts/boncross~tripadvisor-location-details/run-sync-get-dataset-items with {"locations": [...]} as the body returns the records in the same call for a short list, and the apify-client packages for Node.js and Python handle long ones. To track rankings over time, put the same list on an Apify Schedule and compare rankingPosition between runs.
Through the Apify MCP server (mcp.apify.com) an AI agent sees the actor as the tool tripadvisor-location-details and can look a place up mid-conversation.
FAQ
Do I need proxies or a Tripadvisor account?
You need neither. You don't sign in to anything, and proxy usage is included in the price.
Does it return reviews?
You get the place record, including how the reviews split by star and language and what they mention most. For the review text, use Tripadvisor Reviews Scraper with the same links.
Can I look a place up without its URL?
The numeric location id works on its own. It's the number after -d in any Tripadvisor address, such as 93589.
Why does a tour come back with fewer columns?
Bookable tours and activities have no full place record on Tripadvisor. You get a partial row, marked isPartialRecord: true, with the name, link, rating, review count, description, city and country, the lead photo, the write-a-review link, the rating breakdown and the popular mentions. Ranking, price, contact details and opening hours are empty. A partial row is billed like any other place.
Why is hasFee empty on my attractions?
The column is filled only where Tripadvisor states one. In our check on 7 October 2026 it was empty on all 5 attractions in the sample.
Why don't the star counts add up to the review total?
Tripadvisor keeps ratingDistribution and totalReviews separately, and on the busiest places they can differ slightly. The Louvre showed 104,628 against 103,407.
What are the limits?
- The record is in English. Language and currency settings don't change it.
- You get one lead photo per place, not the gallery.
- Amenities and style rankings are for hotels, dietary options for restaurants, and awards for hotels only.
- Sub-ratings are Tripadvisor's averages. A restaurant with few reviews can show the same score on each aspect.
- Destination pages return a review count and a description but no rating, ranking or address, because those belong to places. They get no rating breakdown or mentions either: the counts Tripadvisor keeps for a destination describe the destination page, not the places in it, and we leave the columns empty.
rankingTextis Tripadvisor's wording and can count a wider list thanrankingDenominator. A restaurant reads "#692 of 15,866 places to eat" where the ranked list of restaurants is 9,146.phoneis as each place publishes it, and formats differ ("+1 212-883-7373", "(212) 310-6600", "12127651900").- Nightly price ranges come from Tripadvisor's display. Treat them as indicative, not as a live quote.
- An input with no Tripadvisor id in it, or a place that can't be read, gets a row with
inputand anerrormessage. Those rows are free.
Is it legal to scrape Tripadvisor place data?
Everything here is published by Tripadvisor to visitors who aren't signed in. Collecting public data is broadly lawful. How you use it, contact details included, is your responsibility under GDPR and similar rules, and it's worth taking legal advice if you're unsure.
More from BonCross
- Tripadvisor Reviews Scraper: Every Tripadvisor review for any hotel, restaurant, attraction or tour.
- Agoda Reviews Scraper: Agoda hotel reviews, including the Booking.com reviews Agoda shows.
- Booking.com Reviews Scraper: Every Booking.com guest review for any hotel.
- Expedia Reviews Scraper: Expedia guest reviews for any hotel, including hotels given as Hotels.com links.
- Google Maps Reviews Scraper: Google Maps reviews for any place using URLs, Place IDs or names.
- Accor Hotel Details Scraper: Full Accor hotel records.
Your feedback
If a column is empty where Tripadvisor's page shows a value, or a place you expected came back as an error, open an issue on the Issues tab in Apify Console and include the link. We read them all and answer there.