The fastest way to collect 10,000 to 50,000 Tripadvisor hotel reviews is a reviews API, not a scraper you build yourself. Scavio's Tripadvisor API lists every hotel in a city in one call to /api/v1/tripadvisor/search, and /api/v1/tripadvisor/reviews then returns 10 full reviews per call with rating, trip date, trip type and the hotel's reply, page after page until a hotel runs out. 10,000 reviews are 1,000 calls: about an hour one call at a time, and 2,000 credits, about $4 on the Growth plan billed yearly.
The question was asked on r/webscraping: a student new to scraping wanted 10,000 to 50,000 hotel reviews from Tripadvisor and Booking.com to compare hotel brands with topic modelling, and was short on time. The thread drew 38 comments, and one of the most upvoted replies was that it is "not doable if you're short on time". Building a scraper for it is slow. Calling an API is not.
Why Tripadvisor's own API does not fit this job
Tripadvisor's legacy Content API returned up to 5 of the most recent reviews per location and was retired on August 31, 2026. Its replacement, Terra, draws reviews from a fixed pool of recent reviews set by contract (its docs use 25 as the example), so 50,000 reviews across a few dozen hotels is out of reach. Its master terms also exclude use with AI or machine learning beyond internal retrieval testing without a separate agreement, and its caching policy forbids storing the content, which a topic-modelling corpus needs.
Step 1: List a city's hotels in one call
Get the city's geo_id from /api/v1/tripadvisor/locations (Paris is 187147), then:
curl -s https://api.scavio.dev/api/v1/tripadvisor/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"geo_id": "187147", "category": "hotels"}'On October 27, 2026 this returned 34 Paris hotels in 4.5 s, each with location_id, rating and review_count. Together they had 65,094 reviews in Tripadvisor's count. For a brand comparison, filter the names: the 3 Astotel hotels on the page had 8,316 reviews (Hôtel Malte 3,976, Hotel Astoria 3,317, Hôtel Astra Opéra 1,023) and the 7 IHG hotels (3 of them sponsored listings) had 9,095, led by the InterContinental Paris Le Grand with 3,823. page returns the next 30 hotels.
Step 2: Page through each hotel's reviews
import requests
KEY = "sk_live_your_key"
URL = "https://api.scavio.dev/api/v1/tripadvisor/reviews"
def all_reviews(location_id, geo_id):
seen, page = {}, 1
while True:
r = requests.post(URL, headers={"Authorization": f"Bearer {KEY}"}, json={
"location_id": location_id, "geo_id": geo_id,
"category": "hotels", "page": page,
}, timeout=150)
if r.status_code == 404: # past the last page
return list(seen.values())
r.raise_for_status()
for review in r.json()["data"]["reviews"]:
seen[review["review_id"]] = review # pages can overlap by one
page += 1
reviews = all_reviews("228694", "187147") # Hotel Malte - AstotelFor Hôtel Malte the loop stops after page 277: about 2,769 reviews, the oldest published in January 2017. Each review arrives as:
{
"review_id": "883602322",
"title": "Beautiful spot next to everything you need",
"text": "The hotel is in an amazing location and the staff was warm and friendly! It is a 5 minute walk from the Louvre...",
"rating": 5,
"published_date": "Mar 2023",
"trip_date": "March 2023",
"trip_type": "Traveled as a couple",
"author": "Jill D",
"author_contributions": 20233,
"owner_response": null
}The text is the full review body, the rating and trip_type let you split topics by score or traveller type, and owner_response shows how each brand answers complaints. On the newest hotel reviews published_date came back null, so group by trip_date.
What it costs and how long it takes
The seven review pages we timed answered in 1.8 to 4.5 seconds, 3.2 seconds on average.
| Reviews | Calls (10 a page) | Credits | Growth yearly | One call at a time |
|---|---|---|---|---|
| 10,000 | 1,000 | 2,000 | about $4 | about 54 minutes |
| 50,000 | 5,000 | 10,000 | about $20 | about 4.5 hours |
The $30 monthly Project plan's 7,000 credits cover 3,500 calls, or 35,000 hotel reviews. New accounts get 50 free credits, enough to test the loop on a couple of hotels first. Restaurant pages hold 15 reviews, so restaurant corpora cost a third less per review.
Two limits to plan around. Tripadvisor's review pages do not list every review in its total: for Hôtel Malte they held about 2,769 of the 3,976 counted. And reviews are written by individuals, so check Tripadvisor's terms and the privacy rules for your use with your own counsel.
For the Booking.com half of the question, Scavio's Booking.com API returns guest reviews with per-category subscores at 1 credit a call, with the same key.
Try the Tripadvisor API free, 50 credits, no card, or run a reviews call in the playground.
Reference: Tripadvisor API overview · reviews docs · search docs · how to get Tripadvisor reviews · best Tripadvisor reviews APIs
Frequently asked questions
Can I download all Tripadvisor reviews for a hotel?
Yes, page by page. Scavio's /api/v1/tripadvisor/reviews returns 10 reviews a page for a hotel and you increment page until it returns 404. For Hotel Malte in Paris that was 277 pages on October 27, 2026, about 2,769 reviews back to January 2017, at 2 credits a page.
Is the Tripadvisor API free?
No. Tripadvisor's legacy Content API and its 5,000 free monthly calls were retired on August 31, 2026. Its Terra replacement gives 1,000 free billable entities once per account, then charges from $0.015 each, and returns only a contracted pool of recent reviews. Scavio gives 50 free credits on signup, enough for 25 Tripadvisor calls.
Can I use Tripadvisor reviews for topic modelling?
Not through Tripadvisor's own API without a separate agreement: Terra's master terms exclude use with AI or machine learning beyond internal retrieval testing, and its caching policy forbids storing the content. Reviews you collect elsewhere are still written by individuals, so check Tripadvisor's terms and the privacy rules that apply to your project with your own counsel.
How long does it take to collect 50,000 Tripadvisor reviews?
At 10 hotel reviews a call and the 3.2-second average page time we measured, 50,000 reviews are 5,000 calls, about 4.5 hours one call at a time, and 10,000 credits, about $20 on Scavio's Growth plan billed yearly. Running a few calls in parallel, within your plan's concurrency limit, shortens that.