[Home](https://scrapfly.io/)/[Scrapers](https://scrapfly.io/scrapers)/Tripadvisor

Hotels · reviews · restaurants · things to do

# // Tripadvisor Scraper API

Get Tripadvisor hotel details, reviews, restaurants, attractions and search results as clean JSON. Scrapfly handles the bot checks, so you send a URL and read the data.

- **Clone it and run it.** An open-source Tripadvisor scraper for hotels with their reviews, paginated hotel search and location lookup, tested against live Tripadvisor every night.
- **Rating, review count and hotel facts in one request.** Read the structured data Tripadvisor embeds in each page: address, price level, amenities and coordinates.
 
 [Get free API key](https://scrapfly.io/register) [View GitHub scraper](https://github.com/scrapfly/scrapfly-scrapers/tree/main/tripadvisor-scraper) [Read Unblocker docs](https://scrapfly.io/docs/scrape-api/unblocker) 

1,000 free credits. No credit card required.

 [  ](https://scrapeway.com/web-scraping-api/scrapfly) [  ](https://www.capterra.com/p/212653/Scrapfly/)  

 4.9/5 from 238 reviews 

 



 

 

 Tripadvisor pages · illustration

 

 

 Hotel JSON**Output**

```
{
  <span class="c-str">"name"</span>: <span class="c-str">"The Bryant Park Hotel"</span>,
  <span class="c-str">"rating"</span>: <span class="c-num">4.8</span>,
  <span class="c-str">"reviews"</span>: <span class="c-num">5583</span>,
  <span class="c-str">"street"</span>: <span class="c-str">"40 West 40th Street"</span>,
  <span class="c-str">"city"</span>: <span class="c-str">"New York City"</span>,
  <span class="c-str">"price_level"</span>: <span class="c-str">"$$$"</span>,
  <span class="c-str">"amenities"</span>: <span class="c-num">25</span>,
  <span class="c-str">"lat"</span>: <span class="c-num">40.752895</span>,
  <span class="c-str">"lng"</span>: -<span class="c-num">73.983696</span>
}
```

Printed by the Python request below[See the request ↓](#implementation)

  

What you can scrape from Tripadvisor

Four kinds of Tripadvisor data you can scrape with Scrapfly, no Tripadvisor account required.

 ## // Scrape Tripadvisor hotel details

Hotel name, street address, coordinates, rating, review count, price level and the full amenity list, with the phone number and hotel website where listed. Key every record on the location ID in the URL (`d224214`) to match the same hotel across repeat requests.

- name
- address
- geo
- aggregateRating
- priceRange
- amenityFeatures

  ## // Scrape Tripadvisor reviews

Review title, full text and bubble rating on hotel, restaurant and attraction pages. Hotel reviews add the date of stay, trip type and the management response. Step back through older reviews with the offset in the URL, such as `-or10-`.

- title
- text
- rating
- date of stay
- trip type
- owner response

  ## // Scrape restaurants and things to do

Restaurants with cuisine, price range, opening hours, reservations, address, rating and review count. Attractions with address, opening hours, rating, review count and official website, from museums to landmarks.

- servesCuisine
- priceRange
- openingHoursSpecification
- acceptsReservations
- openingHours
- sameAs

  ## // Scrape Tripadvisor search results

Hotel and restaurant lists for a city: name, address, coordinates, rating and review count for each result, plus the total number of hotels. Add the offset to the URL (`-oa30-`) to collect the next results page.

- itemListElement
- name
- address
- aggregateRating
- geo
- total results

  



Reliability

## // Get past Tripadvisor's DataDome block

Tripadvisor's DataDome check can answer with HTTP 403 and a captcha page instead of the hotel, restaurant or results list. Use Unblocker (formerly ASP) with residential proxies to fetch hotel, review, restaurant, attraction and search pages.

`unblocker=true`Enable Scrapfly's [Unblocker](https://scrapfly.io/products/unblocker) for Tripadvisor's bot checks.



`proxy_pool=residential`Send requests through residential proxies, with `country=US` for Tripadvisor.com.



`application/ld+json`Ratings, addresses and listings sit in the page's structured data. Check for that data before parsing, so a captcha page never reaches your dataset.



 



Choose your tools

## // Scrapfly products for Tripadvisor scraping

Start with the Web Scraping API, Unblocker and residential proxies. Add a hotel extraction model, screenshots, a browser session or a URL-list crawl as your workflow needs them. One API key covers all five products.

 ### Web Scraping API for Tripadvisor

Fetch hotel, restaurant, attraction and search URLs with Unblocker and residential proxies. The structured data and review cards come in the page HTML, ready to parse.

Read the JSON-LD script for rating, address and amenities, and the review cards for review text.

 

```
GET /scrape?url=https://www.tripadvisor.com/Hotel_Review-g60763-d224214-Reviews.html&unblocker=true&proxy_pool=residential&country=US
```

 [Explore Web Scraping API →](https://scrapfly.io/products/web-scraping-api)  ### Data Extraction API for Tripadvisor hotels

Add `extraction_model=hotel` for a standard hotel record, with no parser to write.

Get hotel name, address, rating, review count, amenities, photos and review text in the same schema you use for other travel sites.

 

```
GET /scrape?url=https://www.tripadvisor.com/Hotel_Review-g60763-d224214-Reviews.html&unblocker=true&proxy_pool=residential&country=US&extraction_model=hotel
```

 [Explore Data Extraction API →](https://scrapfly.io/products/extraction-api)  ### Screenshot API for Tripadvisor pages

Capture the restaurant or hotel page with its rating, photos and booking options.

Keep a dated visual record of each listing alongside your JSON.

 

```
GET /screenshot?url=https://www.tripadvisor.com/Restaurant_Review-g60763-d1077686-Reviews.html&country=us&capture=fullpage&format=png
```

 [Explore Screenshot API →](https://scrapfly.io/products/screenshot-api)  ### Cloud Browser API for Tripadvisor sessions

Connect Playwright or Puppeteer to hosted Chromium when your workflow needs a browser session.

Load the hotel or restaurant page and read its rendered content once the page settles. Set the residential pool and US country on the connection URL.

 

```
chromium.connect_over_cdp("wss://browser.scrapfly.io?key=KEY&proxy_pool=residential&country=us")
```

 [Explore Cloud Browser API →](https://scrapfly.io/products/cloud-browser-api)  ### Crawler API for lists of Tripadvisor URLs

Submit hotel, restaurant and search URLs as one bounded job, with Unblocker and residential proxies applied to the requests.

Ask for HTML output and parse the structured data and review cards after the job finishes.

- url\_list
- unblocker
- proxy\_pool
- country
- content\_formats

 [Explore Crawler API →](https://scrapfly.io/products/crawler-api)  



One request

## // Fetch a Tripadvisor hotel and read its rating and review count

The JSON at the top is what this code prints for a New York City hotel: one request, then selected fields from the page's structured data.

Install `scrapfly-sdk` and replace the key below. The example uses only the SDK and Python's standard library.

**Prefer the full scraper?** The open-source [Tripadvisor scraper on GitHub](https://github.com/scrapfly/scrapfly-scrapers/tree/main/tripadvisor-scraper) covers hotel pages with their reviews, paginated hotel search and location lookup in Python 3.10. It runs against live Tripadvisor every night. Clone it, set `SCRAPFLY_KEY`, and run `poetry run python run.py`.

 

 Python · scrapfly-sdkscrape + parse

```
<span class="c-key">import</span> json, re
<span class="c-key">from</span> scrapfly <span class="c-key">import</span> ScrapeConfig, ScrapflyClient

client = ScrapflyClient(key=<span class="c-str">"YOUR_SCRAPFLY_KEY"</span>)
result = client.scrape(ScrapeConfig(
    <span class="c-str">"https://www.tripadvisor.com/Hotel_Review-g60763-d224214-Reviews.html"</span>,
    unblocker=<span class="c-key">True</span>,
    proxy_pool=<span class="c-str">"residential"</span>, country=<span class="c-str">"US"</span>,
))
blocks = re.findall(
    <span class="c-str">r'<script type="application/ld\+json">(.*?)</script>'</span>,
    result.content, re.S,
)
hotel = next(
    (d <span class="c-key">for</span> d <span class="c-key">in</span> map(json.loads, blocks) <span class="c-key">if</span> <span class="c-str">"aggregateRating"</span> <span class="c-key">in</span> d),
    <span class="c-key">None</span>,
)
<span class="c-key">if</span> hotel <span class="c-key">is</span> <span class="c-key">None</span>:
    <span class="c-key">raise</span> RuntimeError(<span class="c-str">"Tripadvisor returned no hotel data"</span>)
listing = {
    <span class="c-str">"name"</span>: hotel[<span class="c-str">"name"</span>],
    <span class="c-str">"rating"</span>: float(hotel[<span class="c-str">"aggregateRating"</span>][<span class="c-str">"ratingValue"</span>]),
    <span class="c-str">"reviews"</span>: hotel[<span class="c-str">"aggregateRating"</span>][<span class="c-str">"reviewCount"</span>],
    <span class="c-str">"street"</span>: hotel[<span class="c-str">"address"</span>][<span class="c-str">"streetAddress"</span>],
    <span class="c-str">"city"</span>: hotel[<span class="c-str">"address"</span>][<span class="c-str">"addressLocality"</span>],
    <span class="c-str">"price_level"</span>: hotel[<span class="c-str">"priceRange"</span>].split()[<span class="c-num">0</span>],
    <span class="c-str">"amenities"</span>: len(hotel[<span class="c-str">"amenityFeatures"</span>]),
    <span class="c-str">"lat"</span>: hotel[<span class="c-str">"geo"</span>][<span class="c-str">"latitude"</span>],
    <span class="c-str">"lng"</span>: hotel[<span class="c-str">"geo"</span>][<span class="c-str">"longitude"</span>],
}
print(json.dumps(listing, indent=<span class="c-num">2</span>))
```

 

 



What the data is used for

## // Common Tripadvisor scraping use cases

### Reputation monitoring

Track rating and review count for a set of hotels or restaurants over time, keyed on the location ID.



### Review analysis

Collect review titles, text and ratings to find what guests praise or complain about.



### Hotel benchmarking

Compare rating, price level and amenities across the hotels in a city.



### Restaurant market research

Map cuisines, price ranges and ratings for the restaurants in a city.



### Travel data enrichment

Fill venue records with addresses, coordinates, opening hours and photos.



### Destination research

Rank the top things to do in a city by rating and review count.



 



Common questions

## // Tripadvisor scraping FAQ

 Is scraping Tripadvisor legal?There is no universal answer. Legality depends on your jurisdiction, the data, the access method and how you use the result. Keep the workflow to public pages, avoid signed-in content, treat reviewer names and profiles as personal data, review Tripadvisor's terms, and get legal advice for commercial use.

 Do I need a Tripadvisor account or API key?No. These requests read public Tripadvisor.com pages signed out. You only need a Scrapfly API key, not a Tripadvisor account or API access.

 Why does Tripadvisor return 403?That is Tripadvisor's DataDome bot check. It answers with HTTP 403 and a captcha page instead of the hotel or listing. Set `unblocker=true`, `proxy_pool=residential` and `country=US`. Check that the response contains the expected structured data before parsing it.

 Can I scrape Tripadvisor reviews?Yes. Hotel, restaurant and attraction pages carry their newest reviews as cards with title, text and bubble rating; hotel reviews add the date of stay, trip type and management response. Add `-or10-` to a hotel URL for the next page of reviews. The open-source scraper collects several review pages per hotel.

 Can I scrape Tripadvisor restaurants and attractions?Yes. Restaurant pages embed cuisine, price range, opening hours, reservations, address, rating and review count. Attraction pages embed address, opening hours, rating, review count and the official website.

 Can I scrape Tripadvisor search results?Yes. A city's hotel or restaurant list embeds each result with name, address, coordinates, rating and review count, and the hotel list shows the total number of hotels. Add `-oa30-` to the URL for the next page. The open-source scraper handles pagination and removes repeated listings.

 How much does scraping Tripadvisor cost?A Tripadvisor page with Unblocker and residential proxies costs 35 credits, or 40 when Unblocker loads the page in a browser. The hotel extraction model adds credits based on the response size, 15 on a hotel page; a Screenshot API capture costs 60 credits. Every account starts with 1,000 free credits.

 What are the rate limits when scraping Tripadvisor?Scrapfly sets no Tripadvisor-specific limit. Your maximum parallelism is the concurrency quota on your plan, or a lower cap configured for the project. Each in-flight request uses one slot until it finishes.

 



Start with one request

## Fetch the URL. Read the JSON.

Web Scraping API with Unblocker and residential proxies, one call per Tripadvisor URL.

Proxies across 190+ countries

 [Tripadvisor scraper on GitHub](https://github.com/scrapfly/scrapfly-scrapers/tree/main/tripadvisor-scraper) [How to scrape Tripadvisor](https://scrapfly.io/blog/posts/how-to-scrape-tripadvisor) [All scraper pages](https://scrapfly.io/scrapers) 

 

 [Get free API key](https://scrapfly.io/register) [Read the docs](https://scrapfly.io/docs/scrape-api/unblocker)