Tripadvisor API
Search Tripadvisor for hotels, restaurants and attractions to get ratings, review counts and locations, then pull the full review thread for any place with trip type, trip date, helpful votes and author details. Ten regional domains, no proxies and no login.
RECORDS3
MEDIAN LAGon demand
PARAMETERS6
TOTAL USERS1
TOTAL RUNS21
RATINGno ratings yet
LAST MODIFIED2026-08-08
PUBLISHED2026-08
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| search_mode | enum | yes | search | search finds places by keyword and returns the placeId values; reviews pulls the full review thread for one place. |
| query | string | no | — | Required in search mode. A keyword such as 'hotels in paris' or 'seafood restaurants boston'. |
| place_id | string | no | — | Required in reviews mode. The numeric placeId from any search-mode row. |
| place_types | string[] | no | — | Optional filter in search mode. ACCOMMODATION, EATERY or ATTRACTION. Empty returns every type. |
| max_results | integer | no | 100 | Rows to return before stopping. Search returns 30 places per upstream call, reviews 10, and paging is automatic. — drives your bill |
| tripadvisor_domain | enum | no | www.tripadvisor.com | Regional domain, which sets the language and currency of the results. |
Worked examples
{
"search_mode": "search",
"query": "hotels in paris",
"max_results": 10
}
{
"search_mode": "reviews",
"place_id": "143336",
"max_results": 50
}
{
"search_mode": "search",
"query": "seafood restaurants boston",
"place_types": ["EATERY"],
"max_results": 30
}
{
"search_mode": "search",
"query": "hotels in berlin",
"tripadvisor_domain": "www.tripadvisor.de"
}
POWER-USER TIP
Place detail is deliberately absent — There is no place-detail mode, because the upstream place endpoint is broken. Address, phone number and opening hours are not available from this source. Search rows still carry rating, review count and location, which covers most of what a detail lookup would have given you.
POWER-USER TIP
Reviews cost three times a place — A place row is billed at a third of a review row, because one upstream call returns 30 places but only 10 reviews. Run search first to pick the exact places you care about, then pull reviews only for those.
Coverage
10
regional domains — com · co.uk · ca · com.au · in · de · fr · es · it · com.br
3
place types — accommodation · eatery · attraction
17
fields per review — rating text trip type trip date votes author +
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~tripadvisor-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"search_mode":"search","query":"hotels in paris","max_results":10}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/tripadvisor-api").call(
run_input={"search_mode": "search", "query": "hotels in paris", "max_results": 10}
)
for place in client.dataset(run.default_dataset_id).iterate_items():
print(place.get("title"), place.get("rating"), place.get("reviewCount"), place.get("placeId"))
What people use it for
- Guest sentiment analysis for a hotel or restaurant group
- Competitor review benchmarking across a city
- Scheduled review monitoring for reputation management
- Building a fresh hotel reviews dataset for an LLM pipeline
- Travel content research and destination roundups