Every review. Every rating.
Every property you track.
Find any hotel, restaurant or attraction on Tripadvisor and get its profile, its ranking against the rest of the city, its traveller reviews and its photo gallery as structured JSON. Browserless and fast: a full profile is eight upstream operations resolved inside one request.
Tripadvisor serves 20 reviews per page, always — depth comes from paging, and we say so in the docs rather than promising a bigger page.
Trusted by developers shipping real products.
494,175 served today
Request
$ curl -X POST \ https://api.fetchlayer.dev/tripadvisor/location-reviews \ -H "Authorization: Bearer ss-your-key" \ -H "Content-Type: application/json" \ -d '{"location":"298106","pages":5}'
Response
{
"locationName": "Park Hyatt Tokyo",
"rating": 4.5,
"reviews": [{
"rating": 5,
"title": "Still the best view in Tokyo",
"tripType": "couples",
"visitDate": "2026-08-01",
"managementResponse": { "text": "Thank you..." }
}],
"pagesScraped": 5,
"nextCursor": "eyJvZmZzZXQiOjEwMH0"
} Built for feedback workflows
Fetch the public signal. Use it wherever your team works.
Name in, location id out
Search hotels, restaurants, attractions, tours, cities and regions by name and get the id every other endpoint takes — along with the kind of place, its city, its rating and its review count.
A full profile in one request
Rating distribution by bubble, review counts per language, ranking within the city, price range, address, coordinates, phone, website, amenities, cuisines, opening hours, awards and description. Eight upstream operations, one call, no browser.
Reviews with the whole record
Full text rather than a snippet, bubble rating, trip type, month of visit, date written, reviewer home town and contribution count, per-aspect sub-ratings, attached photos, and the owner’s public reply.
Benchmark a portfolio
Run the same two calls across every property you manage and every rival in the same city, and you have a ranking table, a rating distribution and a complaint feed that update on your schedule.
Gallery photos and the files
Page a place’s gallery with captions, dimensions and credit, then stream the image bytes through GET /media with HTTP Range support.
Honest ceilings, stated up front
Reviews arrive 20 to a page whatever limit says, and language is a translation target rather than a filter. Both are in the docs, and every response carries a notes array reporting truncated walks and upstream limits.
AI-ready JSON
Hand review text, trip types, sub-ratings and owner replies to an LLM or an MCP agent to cluster complaints, score sentiment by segment, and draft the response — no HTML parsing, no wrapper code.
Ask what guests actually complain about—then export it.
Prefer not to write code? Give FetchLayer Research Chat a property and a rival down the road, ask where the one-star reviews cluster and which complaints management never answers, and turn the whole review set into a structured file for your ops review.
- ✓Ask questions in plain English
- ✓Analyze themes, sentiment, and pain points
- ✓Download the structured results as CSV or JSON
No code or setup required · Uses your FetchLayer credits
Pull the last 300 reviews for these two hotels, group the complaints by theme, and flag every one-star review with no owner reply. Export it as CSV.
I walked 15 pages for each property, clustered the criticism into seven themes — check-in queues and bathroom cleanliness dominate both — and found 22 one-star reviews with no management response. The review-level breakdown is ready to download.
tripadvisor-review-themes.csv
600 reviews · 14 columns · ready to download
Solutions
Build the workflow around the feedback.
The other half of local reputation
Pull Google Maps reviews for the same properties and compare the two rating populations side by side.
Explore →Reviews in the same JSON shape
If the property has an app, read its App Store reviews through an identical request pattern.
Explore →What travellers say off-platform
Search public discussions for the destination questions and recommendations reviews never capture.
Explore →From raw feedback to action
One request is the start of the workflow.
Store the structured response, run it on a schedule, pass it to an LLM, or feed it into the system your team already uses. FetchLayer handles retrieval so you can focus on the outcome.
- 01
Resolve the place
Search a property name to get its location id, or paste a Tripadvisor URL into resolve-url — which is free — and take the id straight out of it.
- 02
Pull the profile and the reviews
One call for the profile and the city ranking, then page the reviews with pages and cursor, filtering by minimum rating and trip type.
- 03
Turn reviews into decisions
Track rating movement week over week, benchmark against every comparable property in the city, route unanswered criticism to the right manager, or hand the JSON to an agent to write the summary.
MCP & agents
Your AI already knows
how to use this.
Use the Tripadvisor endpoint directly from your MCP-compatible agent. Ask it to retrieve public feedback, identify patterns, and turn the result into a useful brief without writing integration glue.
Pick your editor and we hand you the config with your key already in it — no JSON to hand-edit, no wrapper code.
Get your free API keyFree tier · no credit card · any MCP host
Find this hotel on Tripadvisor, tell me where it ranks in its city, and pull the last 200 reviews so I can see what guests keep complaining about.
Resolved the property, read its profile — #12 of 1,489 hotels in the city, 4.5 average across 2,184 reviews — and walked 10 pages for the most recent 200. Check-in queues and bathroom cleanliness account for most of the criticism below four bubbles.
Works with every MCP-compatible tool
Use cases
What teams build with Tripadvisor reviews.
Same API, endless applications. Here is what teams ship with public location reviews.
Property benchmarking
Compare rating, city ranking and recurring complaints across every property you manage and every rival nearby.
AI agent context
Give Claude, Codex, or your MCP agent structured traveller reviews with sub-ratings, trip types and owner replies.
Reputation monitoring
Poll new traveller reviews on a schedule and alert the duty manager when a complaint cluster starts to grow.
Guest experience research
Turn per-aspect sub-ratings and review text into a clean operations dataset by trip type and season.
Portfolio reporting
Run the same two calls across a whole portfolio and export a ranking table that refreshes itself every week.
Market research
Study a city’s hotels, restaurants and attractions to see what travellers value before you open there.
Compare approaches
Spend time on the insight, not the collection layer.
| What you need | FetchLayer | Official API | Build it yourself |
|---|---|---|---|
| Read reviews without a partner licence | ✓ | Partner agreement | You build it |
| Full review text, not a snippet | ✓ | Truncated excerpt | You extract it |
| City ranking & rating distribution | ✓ | Limited | You build it |
| Browserless — no headless render | ✓ | N/A | You run the browsers |
| Ready for AI and MCP workflows | ✓ | Your integration | Your integration |
FetchLayer provides access to publicly available data. It is not affiliated with, endorsed by, or sponsored by the platform.
Pricing
Start free. Scale when ready.
Pay per request with no commitment, or lock in a flat monthly rate with built-in savings.
Free plan — 30 requests
Verify responses, inspect the API, no credit card required.
Pay as you go
$1.99
per 1,000 requests
$0.00199 per request · credits never expire
How credits work — no multipliers
One credit = one API call, on every endpoint and platform. No matter how many results come back, you pay for the call, not the output size. Most scraping APIs charge multipliers of 5x, 25x, even 75x per call depending on the target — here it's always 1.
- No multipliers — 1 request = 1 credit
- No monthly commitment
- Credits never expire
- Same API & MCP access as subscribers
- ∞ req/min, ∞ API keys
∞
Expiry
Credits stay until you use them. No monthly reset, no pressure to hit a quota.
0
Commitments
No subscription, no contract, no minimums. Start, pause, or scale whenever.
100%
Access
Every endpoint and MCP included. Not a limited tier — same data as any subscriber.
API reference
Every parameter, documented.
All requests are POST with a JSON body and Bearer auth header.
POST /tripadvisor/search-locations Find hotels, restaurants, attractions, tours, cities and regions by name. Returns the location id every other endpoint takes, plus the kind of place, where it sits, its rating and its review count.
query* string Name of a hotel, restaurant, attraction, city or region locationTypes string[] 'all' | 'hotel' | 'restaurant' | 'attraction' | 'activity' | 'geo'. Defaults to all. limit number Maximum places returned (max 50), or -1 for everything available. Defaults to 10. latitude number Bias results towards this point; pass longitude too. longitude number Bias results towards this point. POST /tripadvisor/location-profile One place in full: rating with the per-bubble distribution and per-language counts, ranking within its city, price range, address and coordinates, phone, website, amenities, cuisines, opening hours, awards and description. Eight upstream operations resolved in a single request.
location* string Tripadvisor location id, or a hotel, restaurant or attraction URL POST /tripadvisor/location-reviews Traveller reviews with the full text, bubble rating, trip type, month of visit, date written, reviewer profile, per-aspect sub-ratings, attached photos and the owner’s reply. Tripadvisor serves 20 per page, so depth comes from pages and cursor.
location* string Tripadvisor location id, or a hotel, restaurant or attraction URL limit number Maximum reviews returned (max 2000), or -1 for everything available. Defaults to 20. pages number Pages of reviews to collect in one request (max 100). 20 reviews per page — this is the depth knob. cursor string Resume from a previous response's nextCursor. language string Language to request reviews in. A translation target, not a filter. Defaults to en. translate boolean Return each review’s text translated into language. Defaults to false. sortBy string 'recent' | 'detailed' | 'insightful'. Defaults to recent. minRating number Only reviews rated this many bubbles or more (1 to 5). tripTypes string[] 'business' | 'couples' | 'family' | 'friends' | 'solo'. photosPerReview number How many photo URLs per review (max 20). Defaults to 4; 0 skips them. POST /tripadvisor/location-photos A place’s gallery as URLs, with captions, pixel dimensions, media type and credit. Each photo carries a download URL that streams the file itself through GET /tripadvisor/media, with HTTP Range support.
location* string Tripadvisor location id, or a hotel, restaurant or attraction URL limit number Maximum photos returned (max 200), or -1 for everything available. Defaults to 20. cursor string Resume from a previous response's nextCursor. POST /tripadvisor/resolve-url Parse any Tripadvisor URL into the identifiers it encodes — the location id, the geo id of the city or region, a review id, a photo id, the position in the review list, and the kind of place. Free: it never consumes a credit.
url* string Any Tripadvisor URL, to be parsed into structured identifiers Fields marked * are required. Full API reference →
FAQ
Common questions.
Is Tripadvisor review data public?
Yes. Tripadvisor publishes traveller reviews, ratings, rankings and place profiles so anyone can read them. FetchLayer retrieves those publicly available records and returns them as structured JSON. FetchLayer is not affiliated with, endorsed by, or sponsored by Tripadvisor.
Do I need a Tripadvisor partner account or content licence?
No. You authenticate with your FetchLayer API key — the same Bearer token you use for every other platform. There is no partner application to file, no content API licence to negotiate, and no per-property credential to manage.
How many reviews come back per page?
Twenty, always. Tripadvisor serves reviews twenty to a page whatever limit you ask for — a request for 200 in one page returns a byte-identical 20. Depth comes from pages, which walks several pages in one request, and from cursor, which resumes where the last response stopped. Each page walked bills as one request, so a 10-page pull is 10 requests and 200 reviews.
Does the language parameter filter reviews to that language?
No, and this is the single most common misreading of the API. language is the language reviews are requested in, not a filter on what the reviewer wrote. Setting it changes the reported reviewCount — because Tripadvisor counts how many reviews it holds in that language — while the rows that come back stay a mix of languages. Set translate: true to get the review text itself in your language, and read originalLanguage and isTranslated on each review to know whether you are looking at the reviewer’s own words. If you need a real per-language count, the profile endpoint returns reviewCountsByLanguage.
What is the notes array on every response?
A list of plain-English caveats about that specific result: a page walk that stopped early, an upstream limit that was hit, a field Tripadvisor does not publish for that place. A response can be well-formed and still incomplete, and notes is where that gets said. Log it next to the payload and check it before treating a result as the whole story.
What can I pass as the location?
A Tripadvisor location id, or the URL of a hotel, restaurant or attraction page. If you only have a name, /search-locations turns it into an id along with the kind of place, its city, rating and review count. If you have a link somebody pasted, /resolve-url parses it into the location id, the geo id of the city, and a review or photo id where the URL carries one — and parsing a URL is free.
How fast is it, and does it render a browser?
No browser. It is a browserless backend talking to Tripadvisor’s own data layer, which is why a full place profile — rating distribution, city ranking, price range, address, hours, amenities, awards, description — is eight upstream operations resolved inside one request instead of a page load and a parse.
Can I use this with an AI model or MCP agent?
Yes. Every response is structured JSON you can store, embed, or hand to an LLM, and the five JSON endpoints are exposed through FetchLayer’s MCP server — so an agent can find a property, pull its reviews, and summarise what guests complain about without any wrapper code.
How does billing work?
One API request equals one credit, the same as every other FetchLayer platform — no multipliers. Each page of reviews walked counts as one request. Parsing a Tripadvisor URL with /resolve-url is free and consumes nothing; streaming photo bytes bills as a normal request. Tripadvisor is in Beta while coverage expands, at standard pricing.
Start pulling Tripadvisor location data today.
Get a free API key, make your first request, and put public feedback to work in your own product or research workflow.
Used by developers at
Individual developers or teams — not official partnerships