Tripadvisor logo

Tripadvisor

Community
borski
tripadvisor

TripAdvisor Content API for hotel ratings, restaurant search, attraction reviews, rankings, and nearby locations. Use when evaluating hotels or researching destinations. 5K calls/month.

Overview

Publisherborski
Repositorytravel-hacking-toolkit
Skill nametripadvisor
Stars
690
Forks
75
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by borski on GitHub. Read the source before you install it.

Installation

Install the Tripadvisor AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/tripadvisor
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git /tmp/travel-hacking-toolkit
mkdir -p .claude/skills
cp -r /tmp/travel-hacking-toolkit/plugins/travel-hacking-toolkit/skills/tripadvisor .claude/skills/tripadvisor
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Tripadvisor in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Tripadvisor on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Tripadvisor is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

TripAdvisor Content API

Search and retrieve hotel, restaurant, and attraction data from TripAdvisor. Ratings, rankings, reviews, photos, amenities, subratings, trip types, awards.

Base URL: https://api.content.tripadvisor.com/api/v1

Rate limit: 50 calls per second.

Monthly quota: 5,000 API calls per month. Each curl request = 1 call. A full hotel lookup (search + details + reviews + photos) = 4 calls. Budget accordingly. Prefer search + details (2 calls) and only fetch reviews/photos when specifically needed.

API limits: Up to 10 results per search. Up to 5 reviews and 5 photos per location.

Authentication

First-time setup gotcha: TripAdvisor requires whitelisting your outbound IP at https://www.tripadvisor.com/developers before the key works. Without this, every call returns User is not authorized to access this resource with an explicit deny. This is the #1 first-time failure mode. Whitelist before troubleshooting auth or quotas.

  • How to find your current IP: curl ifconfig.me
  • Propagation: changes take 1-5 minutes (AWS edge cache).
  • Multi-IP: residential CGNAT, VPN exits, and different networks each need their own entry.
  • No Referer alternative: the free tier requires IP whitelisting; HTTP Referer restriction is not available.
  • Verify which key is which: the developer portal shows the last 4 chars only (e.g. "Ends in 11D7"), so you can confirm without exposing the secret.

Set TRIPADVISOR_API_KEY in your .env file:

bash
# In .env (gitignored)
TRIPADVISOR_API_KEY=your_key_here

Then source it before calling:

bash
export $(grep TRIPADVISOR_API_KEY .env | xargs)

Error signatures

ResponseMeaningFix
User is not authorized to access this resource with an explicit denyIP not on allowlistWhitelist current IP at the developer portal, wait 1-5 min
Forbidden / 403 with no bodyBad or expired keyRegenerate key
429 Too Many RequestsHit monthly quota (5,000 calls)Wait until next month or upgrade tier

Endpoints

1. Location Search

Find locations by name. Returns up to 10 results.

bash
curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=NOFO+Hotel+Stockholm&category=hotels&language=en"

Parameters:

ParamRequiredDescription
searchQueryYesText search query (name of hotel, restaurant, city)
categoryNoFilter: hotels, restaurants, attractions, geos
phoneNoPhone number filter (any format, no leading +)
addressNoAddress filter
latLongNoLat/long pair, e.g. 59.3127,18.0716
radiusNoRadius from latLong (number)
radiusUnitNokm, mi, or m
languageNoDefault en. Supports 40+ languages.

Response shape:

json
{
  "data": [
    {
      "location_id": "237656",
      "name": "Nofo Hotel",
      "address_obj": {
        "street1": "Tjarhovsgatan 11",
        "city": "Stockholm",
        "country": "Sweden",
        "postalcode": "116 21",
        "address_string": "Tjarhovsgatan 11, Stockholm 116 21 Sweden"
      }
    }
  ]
}

2. Location Details

Get comprehensive info for a location by ID. This is the richest endpoint.

bash
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/details?key=$TRIPADVISOR_API_KEY&language=en&currency=USD"

Parameters:

ParamRequiredDescription
locationIdYes (path)TripAdvisor location ID from search
languageNoDefault en
currencyNoISO 4217 code, default USD

Response includes:

  • name, web_url, address_obj, latitude, longitude, timezone, phone
  • rating (string, e.g. "4.6"), num_reviews (string, e.g. "845")
  • review_rating_count: breakdown by star ({"1": "7", "2": "10", ...})
  • ranking_data: ranking (#10), ranking_out_of (168), ranking_string ("#10 of 168 hotels in Stockholm")
  • subratings: Location, Sleep Quality, Rooms, Service, Value, Cleanliness (each 0.0 to 5.0)
  • price_level: "$", "$$", "$$$", "$$$$"
  • amenities: array of strings
  • styles: array (e.g. "Family", "Centrally Located")
  • neighborhood_info: array with location_id and name
  • trip_types: business, couples, solo, family, friends with count values
  • awards: Travelers Choice, Best of Best, etc. with year and images
  • parent_brand, brand: chain affiliation
  • category, subcategory: hotel/restaurant/attraction
  • photo_count, see_all_photos URL
  • write_review URL

3. Location Reviews

Get up to 5 most recent reviews.

bash
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/reviews?key=$TRIPADVISOR_API_KEY&language=en"

Parameters:

ParamRequiredDescription
locationIdYes (path)TripAdvisor location ID
languageNoDefault en
limitNoNumber of results (max 5 on free tier)
offsetNoIndex of first result

Response shape:

json
{
  "data": [
    {
      "id": 123456,
      "lang": "en",
      "location_id": "237656",
      "published_date": "2026-03-15T00:00:00-04:00",
      "rating": 5,
      "text": "Review text...",
      "title": "Review title",
      "trip_type": "Couples",
      "travel_date": "2026-03",
      "user": { "username": "traveler123" },
      "subratings": {}
    }
  ]
}

Note: Reviews may return empty data: [] for locations with few English reviews. Try different language values for international hotels.

4. Location Photos

Get up to 5 recent photos with multiple size options.

bash
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/photos?key=$TRIPADVISOR_API_KEY&language=en"

Parameters:

ParamRequiredDescription
locationIdYes (path)TripAdvisor location ID
languageNoDefault en
limitNoNumber of results (max 5 on free tier)
offsetNoIndex of first result
sourceNoComma-separated: Expert, Management, Traveler

Photo sizes in response:

  • thumbnail: 50x50 cropped
  • small: 150x150 cropped
  • medium: max 250px dimension
  • large: max 550px dimension
  • original: full resolution

5. Nearby Location Search

Find locations near coordinates. Returns up to 10.

bash
curl -s "https://api.content.tripadvisor.com/api/v1/location/nearby_search?key=$TRIPADVISOR_API_KEY&latLong=59.3127,18.0716&category=hotels&language=en"

Parameters:

ParamRequiredDescription
latLongYesLat/long pair, e.g. 59.3127,18.0716
categoryNohotels, restaurants, attractions, geos
phoneNoPhone number filter
addressNoAddress filter
radiusNoRadius from latLong
radiusUnitNokm, mi, m
languageNoDefault en

Response includes distance (km) and bearing (e.g. "northwest") for each result.

Common Workflows

Hotel Research (most common)

bash
# 1. Search for hotel
curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=Amerikalinjen+Oslo&category=hotels" | python3 -m json.tool

# 2. Get details with location_id from step 1
curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/details?key=$TRIPADVISOR_API_KEY&currency=USD" | python3 -m json.tool

# 3. Get reviews (optional, costs 1 call)
curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/reviews?key=$TRIPADVISOR_API_KEY" | python3 -m json.tool

# 4. Get photos (optional, costs 1 call)
curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/photos?key=$TRIPADVISOR_API_KEY" | python3 -m json.tool

Compare Multiple Hotels in a City

bash
# Search all hotels in city
curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=hotels+Copenhagen&category=hotels"

# Then get details for each location_id returned
# Compare: rating, num_reviews, ranking_data.ranking, subratings, price_level, amenities

Find Restaurants Near Hotel

bash
# Use hotel's lat/long from details response
curl -s "https://api.content.tripadvisor.com/api/v1/location/nearby_search?key=$TRIPADVISOR_API_KEY&latLong=59.31555,18.078924&category=restaurants"

Destination Research

bash
# Search for attractions
curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=things+to+do+Stockholm&category=attractions"

# Nearby attractions from a point
curl -s "https://api.content.tripadvisor.com/api/v1/location/nearby_search?key=$TRIPADVISOR_API_KEY&latLong=59.3293,18.0686&category=attractions"

When to Use

  • Evaluating hotels (ratings, rankings, subratings, review sentiment)
  • Comparing restaurants near a hotel or in a neighborhood
  • Finding attractions and things to do near a destination
  • Getting TripAdvisor ranking data ("#1 of 168 hotels in Stockholm")
  • Checking amenities, trip type breakdown, award status
  • Verifying hotel chain affiliation and neighborhood info

When NOT to Use

  • Pricing or availability. TripAdvisor Content API has no pricing data. Use serpapi, liteapi, chase-travel, amex-travel, or rapidapi for prices.
  • Booking. This is read-only data. No booking capability.
  • Bulk scraping. 5,000 calls/month. Be deliberate.

Key Data Points for Hotel Comparison

When comparing hotels, extract and present:

FieldPathExample
Ratingrating"4.6"
Review countnum_reviews"845"
Rankingranking_data.ranking_string"#10 of 168 hotels in Stockholm"
Location subratingsubratings.0.value"4.7"
Service subratingsubratings.3.value"4.7"
Cleanliness subratingsubratings.5.value"4.8"
Price levelprice_level"$$$$"
Trip type leaderhighest trip_types[].value"Couples: 381"
Awardsawards[].display_name"Travelers Choice 2025"
Breakfastamenities contains "Breakfast included"Yes/No
Chainparent_brand"Worldhotels"

Supported Languages

ar, zh, zh_TW, da, nl, en, en_AU, en_CA, en_HK, en_IN, en_IE, en_MY, en_NZ, en_PH, en_SG, en_ZA, en_UK, fr, fr_BE, fr_CA, fr_CH, de, de_AT, el, iw, it, it_CH, ja, ko, no, pt, pt_PT, ru, es, es_AR, es_CO, es_MX, es_PE, es_VE, es_CL, sv, th, tr, vi

Use da for Danish, no for Norwegian, sv for Swedish when searching Scandinavian hotels for local-language reviews.

Frequently asked questions

What does the Tripadvisor AI skill do?

TripAdvisor Content API for hotel ratings, restaurant search, attraction reviews, rankings, and nearby locations. Use when evaluating hotels or researching destinations. 5K calls/month.

Why use Tripadvisor on TypingMind?

Because you install it once and use it with any model. Tripadvisor is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Tripadvisor in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/tripadvisor. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Tripadvisor?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Tripadvisor?

As many as you like. As long as a model supports skills, you can use Tripadvisor with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Tripadvisor AI skill free?

Yes. It is published on GitHub by borski under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇