Tripadvisor Hotels Scraper
Pricing
$2.00 / 1,000 hotels
Tripadvisor Hotels Scraper
Fast Tripadvisor hotel search scraper. Give it a destination name or a Tripadvisor Hotels URL and get every hotel with rating, review count, ranking, coordinates, full address, phone, amenities, price range, and live per-provider room offers.
Pricing
$2.00 / 1,000 hotels
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Search Tripadvisor for hotels in any destination and get a clean row per property: rating, review count, ranking, coordinates, full address, phone, amenities, price range, and live per-provider room offers.
Give it a destination name — Barcelona, Austin, Texas, Kyoto — or paste a Tripadvisor Hotels URL. No login, no browser, no API key.
What you get
One record per hotel:
| Field | Example |
|---|---|
name, url, locationId | Hotel Astoria, .../Hotel_Review-g187497-d228590-..., 228590 |
rating, reviewCount | 4.3, 2039 |
rankingPosition, rankingOutOf, rankingString | 80, 534, #80 of 534 hotels in Barcelona |
hotelClass, propertyType, category | 3.0, Hotel, HOTEL |
latitude, longitude | 41.393997, 2.153488 |
street, city, state, postalCode, country, addressString | Carrer De Paris, 203 … 08036 Barcelona Spain |
neighborhoods | ["L'Antiga Esquerra de l'Eixample", "Eixample"] |
phone | +34 932 09 83 11 |
amenities | ["Pool", "Restaurant", "Bar/Lounge", "Fitness center"] |
priceRangeMin, priceRangeMax | 158, 299 |
lowestPrice, lowestPriceValue, currency | $137, 136.87, USD |
offers | per-provider rates with numeric price, currency, availability, free-cancellation date |
aiReviewSummary | Tripadvisor's generated summary of what reviewers say |
featuredReview | highlighted review snippet with author, rating, date, link |
image, thumbnail | full-size and 300×200 photo URLs |
Input
{"locationQueries": ["Barcelona"],"maxItems": 100,"includeSponsored": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
locationQueries— destination names. Each is resolved to a Tripadvisor destination, and the match is reported back on every row assearchGeoId/searchGeoNameso you can confirm what was searched. Tripadvisor's lookup is fuzzy and will happily match something for a nonsense query, so checksearchGeoNameif a result set looks wrong.startUrls— Tripadvisor Hotels list URLs, e.g.https://www.tripadvisor.com/Hotels-g187497-Barcelona_Catalonia-Hotels.html. Use these when you want a specific filtered or sorted list. Non-Hotels URLs are skipped with a warning.maxItems— cap per destination, default100, hard ceiling10000.0means zero hotels; it never means unlimited.includeSponsored— Tripadvisor injects the same ~7 paid placements at the top of every page of a destination. They are dropped by default so you are not charged for duplicated ads. Settrueto keep them, flagged asisSponsored.
Notes and limits
- Residential proxies are required. Tripadvisor is behind DataDome. Apify datacenter proxies are blocked outright (HTTP 403 + captcha on every attempt);
RESIDENTIALworks. - Prices are for Tripadvisor's default one-night stay window. Every row carries
checkInDate,checkOutDate, andpricesAreDefaultDatesso the quoted rates are never ambiguous. Custom date ranges are not supported yet. - Some fields are genuinely absent for unreviewed properties. Tripadvisor does not rank a property with zero reviews, publishes no curated amenity list for small ones, and sometimes has no photo. Measured on reviewed properties,
rankingStringis 100% populated andimage98.8%. - A search that returns nothing still writes one row explaining why, rather than finishing with an empty dataset.
How it works
Every Tripadvisor /Hotels-g<geoId>-... page is server-rendered with an inline urqlSsrData blob holding the same GraphQL results the page's JavaScript would otherwise fetch. One HTML GET yields 30 hotels fully populated — no browser, no XHR round-trips. Pagination walks the -oa<offset>- slug, deduping on locationId because paid placements repeat on every page.
Requests use curl_cffi with Safari TLS impersonation; Chrome profiles are rejected at the JA3 stage. Sessions rotate automatically on 403.