ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Tripadvisor6 min readOct 27, 2026

How to Get Tripadvisor Reviews and Hotel Data Through an API

Use Scavio's Tripadvisor API: resolve a hotel by name, read its rating histogram and aspect scores, then page every review, 2 credits a call, no contract.

Scavio Team

Oct 27, 2026

Try the Tripadvisor API free
scavio
Reviews / Hotels
Tripadvisor

To get Tripadvisor reviews and hotel data programmatically, use Scavio's Tripadvisor API. POST /api/v1/tripadvisor/locations turns a hotel's name into its ids, /location returns the rating, the five-bucket histogram, per-aspect scores, ranking, amenities and the 10 newest reviews in one call, and /reviews pages back through the rest, 10 a page for hotels and 15 for restaurants. /search lists a city's hotels, restaurants or attractions in Tripadvisor's own order. Every call costs 2 credits, about $0.004 on the Growth plan billed yearly.

Tripadvisor's own API was built to display a few licensed reviews, not to read a history: the legacy Content API returned up to 5 recent reviews per location and was retired on August 31, 2026, and its Terra replacement returns a fixed pool of recent reviews set by contract. The steps below use Hôtel Malte - Astotel in Paris, captured on October 27, 2026.

Step 1: Resolve the hotel's name

Bash
curl -s https://api.scavio.dev/api/v1/tripadvisor/locations \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Hotel Malte Paris", "limit": 5}'

Tripadvisor keys everything on its own ids, so this call comes first. It answered in 0.9 s; the first row, as captured:

JSON
{
  "pos": 1,
  "type": "HOTEL",
  "name": "Hotel Malte - Astotel, Paris, Ile-de-France, France",
  "geo_id": "187147",
  "location_id": "228694",
  "url": "https://www.tripadvisor.com/Hotel_Review-g187147-d228694-Reviews-Hotel_Malte_Astotel-Paris_Ile_de_France.html",
  "latitude": 48.867207,
  "longitude": 2.337543,
  "category": "Hotels"
}

A city name returns a GEO row with only a geo_id, which is what search takes; a business returns both ids, which detail and reviews take.

Step 2: List the hotels in a city

Bash
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"}'

Paris returned 34 hotels in 4.5 s: 30 in Tripadvisor's ranked order and 4 with sponsored: true. One row, trimmed (URL, image, address parts and review snippet left out):

JSON
{
  "pos": 8,
  "location_id": "572984",
  "geo_id": "187147",
  "type": "hotel",
  "name": "Hotel Eiffel Seine",
  "rank": 6,
  "rating": 4.4,
  "review_count": 3057,
  "price_range": "€€",
  "price": 152,
  "address": "3 Boulevard De Grenelle, Paris, 75015",
  "latitude": 48.85437,
  "longitude": 2.28929,
  "phone": "+33 1 45 78 14 81",
  "ranking": "#6 Best Value of 3,075 places to stay in Paris",
  "sponsored": false
}

price is the nightly rate the listing card prints, present on 23 of the 30 ranked rows. page moves through the list 30 at a time, and category switches to restaurants or attractions.

Step 3: Get the hotel's scores and newest reviews

Bash
curl -s https://api.scavio.dev/api/v1/tripadvisor/location \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location_id": "228694", "geo_id": "187147", "category": "hotels"}'

The summary, as captured in 2.1 s:

JSON
{
  "location_id": "228694",
  "type": "hotel",
  "name": "Hôtel Malte - Astotel",
  "rating": 4.9,
  "review_count": 3976,
  "rating_distribution": { "excellent": 3662, "very_good": 263, "average": 40, "poor": 6, "terrible": 5 },
  "subratings": [
    { "name": "Rooms", "rating": 4.7 },
    { "name": "Service", "rating": 4.9 },
    { "name": "Value", "rating": 4.8 },
    { "name": "Cleanliness", "rating": 4.9 },
    { "name": "Location", "rating": 4.9 },
    { "name": "Sleep Quality", "rating": 4.8 }
  ],
  "ranking": "#1 of 1,896 hotels in Paris",
  "address": "63 Rue De Richelieu, Paris, 75002",
  "website": "http://www.astotel.com/hotel/malte-opera/overview"
}

The same response carries 18 amenities, coordinates, phone, images and reviews[] with the 10 newest reviews, so it is the call to schedule if you track a hotel's reputation day by day.

Step 4: Page through every review

Bash
curl -s https://api.scavio.dev/api/v1/tripadvisor/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location_id": "228694", "geo_id": "187147", "category": "hotels", "page": 2}'

Page 1 already came with step 3, so start at 2. Page 2 answered in 4.5 s with offset 10 and count 10, and all 10 reviews carried the hotel's reply. One review, text trimmed:

JSON
{
  "review_id": "1080444999",
  "title": "A Wonderful Stay with Exceptional Service and a Special Birthday Surprise",
  "text": "We had a wonderful stay at Hotel Malte Astotel in Paris. From the moment we arrived, we were treated with great kindness and hospitality by the entire team...",
  "rating": 5,
  "published_date": null,
  "trip_date": "October 2026",
  "trip_type": "Traveled as a couple",
  "author": "Ramon D",
  "author_contributions": 41,
  "owner_response": "Dear Ramon D,Thank you for choosing Hotel Malte - Astotel for such a special celebration...",
  "owner_response_date": "3 weeks ago",
  "owner_response_from": "Paris_Astotel"
}

Keep incrementing page until you get a 404. For this hotel, page 150 reached March 2023, page 277 held the last 9 reviews, the oldest published in January 2017, and page 278 was a 404: about 2,769 reviews on tripadvisor.com's review pages, against 3,976 in Tripadvisor's total count. Two things to handle: consecutive pages can repeat a review at the boundary, so de-duplicate on review_id, and on the newest hotel reviews published_date came back null while trip_date was filled, so group by trip date.

All four endpoints

EndpointWhat it returnsCredits
/api/v1/tripadvisor/locationsA place or business name resolved to geo_id and location_id2
/api/v1/tripadvisor/searchHotels, restaurants or attractions in a geo, 30 a page, in Tripadvisor's order2
/api/v1/tripadvisor/locationRating, histogram, aspect scores, ranking, amenities, contact details and the newest reviews2
/api/v1/tripadvisor/reviewsA page of reviews: 10 for hotels and attractions, 15 for restaurants2

A full review history costs one call per page: 277 calls, 554 credits and about $1.11 at the Growth-yearly rate for a hotel with Hôtel Malte's depth. For a side-by-side of every option, see the best Tripadvisor reviews APIs.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/tripadvisor/locations with a hotel or city name and your key in the Authorization header.

Try the Tripadvisor API free in the playground first, or call it from Claude and other agents through the MCP server.

Reference: Tripadvisor API overview · locations · search · location · reviews

Frequently asked questions

How do I get all the reviews for a Tripadvisor hotel?

Call Scavio's /api/v1/tripadvisor/location for the first 10 reviews and the totals, then /api/v1/tripadvisor/reviews with page 2, 3 and so on until a page returns 404. For Hotel Malte in Paris that was 277 pages on October 27, 2026, about 2,769 reviews back to January 2017. De-duplicate on review_id when you join pages.

How many reviews does the Tripadvisor API return?

Tripadvisor's legacy Content API returned up to 5 of the most recent reviews per location, and its Terra replacement returns a fixed pool set by your contract, such as the 25 most recent. Scavio's reviews endpoint returns 10 reviews a page for hotels and attractions and 15 for restaurants, and pages as far back as tripadvisor.com lists.

What is a Tripadvisor location_id and geo_id?

geo_id identifies a destination such as Paris (187147) and location_id identifies one business such as Hotel Malte (228694); both appear in Tripadvisor URLs as g187147 and d228694. Scavio's /api/v1/tripadvisor/locations turns a name into both, and the detail and reviews endpoints take the pair.

How much does Tripadvisor data cost with Scavio?

Every Tripadvisor call costs 2 credits: about $0.004 on the Growth plan billed yearly and $0.0086 on the $30 monthly Project plan. A hotel review page holds 10 reviews, so 1,000 hotel reviews cost about $0.40 on Growth yearly. New accounts get 50 free credits with no card.

Tripadvisor reviews as JSON

  • Hotels, restaurants and attractions
  • Rating histogram and aspect scores
  • Every review page, 2 credits a call
Try the Tripadvisor API free

50 free credits, no credit card

On this page

  1. Step 1: Resolve the hotel's name
  2. Step 2: List the hotels in a city
  3. Step 3: Get the hotel's scores and newest reviews
  4. Step 4: Page through every review

Related articles

View all
  • scavio
    Reviews / Hotels
    Tripadvisor
    Fastest Way to Get 10,000+ Tripadvisor Hotel Reviews? A Reviews API, in About an Hour
  • scavio
    Comparison / Reviews
    Tripadvisor
    6 Best Tripadvisor Reviews APIs in 2026: Why Scavio Reads Past the Official Review Cap
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy