关于 tripadvisor
用于查询 TripAdvisor Content API 的技能,可获取酒店、餐厅和景点信息,包括排名、评价、照片与设施;不提供价格或预订功能。
主要功能
- 01按名称或类别搜索地点
- 02获取评分与排名数据
- 03查询近期评价和照片
- 04按坐标查找附近地点
- 05查看设施、奖项和细分评分
适用场景
- 01按评分和设施比较酒店
- 02查找酒店附近的餐厅
- 03调研目的地周边景点
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill tripadvisor安装后在 Claude Code 中输入/tripadvisor确认已加载。
详细介绍
TripAdvisor 内容 API
搜索并检索 TripAdvisor 的酒店、餐厅和景点数据,包括评分、排名、评论、照片、设施、细分评分、旅行类型和奖项。
基础 URL: https://api.content.tripadvisor.com/api/v1
速率限制: 每秒 50 次调用。
每月配额: 每月 5,000 次 API 调用。每个 curl 请求 = 1 次调用。完整查询一家酒店(搜索 + 详情 + 评论 + 照片)= 4 次调用。请合理安排配额。优先使用搜索 + 详情(2 次调用),仅在确有需要时获取评论或照片。
API 限制: 每次搜索最多返回 10 条结果。每个地点最多返回 5 条评论和 5 张照片。
身份验证
首次设置时的注意事项: TripAdvisor 要求先在 https://www.tripadvisor.com/developers 将出站 IP 加入白名单,之后密钥才能生效。若未完成此操作,每次调用都会返回
User is not authorized to access this resource with an explicit deny。这是首次使用时最常见的故障原因。请先添加白名单,再排查身份验证或配额问题。
- 如何查找当前 IP:
curl ifconfig.me- 生效时间: 更改需要 1-5 分钟生效(AWS 边缘缓存)。
- 多个 IP: 居民 CGNAT、VPN 出口和不同网络都需要分别添加。
- 无 Referer 替代方案: 免费层要求将 IP 加入白名单;不支持 HTTP Referer 限制。
- 确认密钥对应关系: 开发者门户仅显示末尾 4 个字符(例如“Ends in 11D7”),因此无需暴露密钥即可确认。
在 .env 文件中设置 TRIPADVISOR_API_KEY:
# In .env (gitignored)
TRIPADVISOR_API_KEY=your_key_here
然后在调用前加载该文件:
export $(grep TRIPADVISOR_API_KEY .env | xargs)
错误特征
| 响应 | 含义 | 解决方法 |
|---|---|---|
User is not authorized to access this resource with an explicit deny | IP 不在白名单中 | 在开发者门户中将当前 IP 加入白名单,并等待 1-5 分钟 |
Forbidden / 403 with no body | 密钥无效或已过期 | 重新生成密钥 |
429 Too Many Requests | 已达到每月配额(5,000 次调用) | 等到下个月或升级套餐 |
端点
1. 地点搜索
按名称查找地点。最多返回 10 条结果。
curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=NOFO+Hotel+Stockholm&category=hotels&language=en"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
searchQuery | 是 | 文本搜索查询(酒店、餐厅或城市的名称) |
category | 否 | 筛选:hotels、restaurants、attractions、geos |
phone | 否 | 电话号码筛选(任意格式,不带开头的 +) |
address | 否 | 地址筛选 |
latLong | 否 | 纬度/经度对,例如 59.3127,18.0716 |
radius | 否 | 距离 latLong 的半径(数字) |
radiusUnit | 否 | km、mi 或 m |
language | 否 | 默认值为 en。支持 40 多种语言。 |
响应结构:
{
"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. 地点详情
通过 ID 获取地点的综合信息。这是信息最丰富的端点。
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/details?key=$TRIPADVISOR_API_KEY&language=en¤cy=USD"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
locationId | 是(路径参数) | 搜索结果中的 TripAdvisor 地点 ID |
language | 否 | 默认值为 en |
currency | 否 | ISO 4217 代码,默认值为 USD |
响应包含:
name、web_url、address_obj、latitude、longitude、timezone、phonerating(字符串,例如 "4.6")、num_reviews(字符串,例如 "845")review_rating_count:按星级划分的数量({"1": "7", "2": "10", ...})ranking_data:ranking(第 10 名)、ranking_out_of(168)、ranking_string(“斯德哥尔摩 168 家酒店中的第 10 名”)subratings:位置、睡眠质量、客房、服务、性价比、清洁度(每项范围为 0.0 到 5.0)price_level:"$"、"$$"、"$$$"、"$$$$"amenities:字符串数组styles:数组(例如 "Family"、"Centrally Located")neighborhood_info:包含 location_id 和名称的数组trip_types:商务、情侣、独行、家庭、朋友及对应数量awards:Travelers Choice、Best of Best 等,包含年份和图片parent_brand、brand:所属连锁品牌category、subcategory:酒店/餐厅/景点photo_count、see_all_photosURLwrite_reviewURL
3. 地点评论
获取最近的最多 5 条评论。
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/reviews?key=$TRIPADVISOR_API_KEY&language=en"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
locationId | 是(路径) | TripAdvisor 地点 ID |
language | 否 | 默认值为 en |
limit | 否 | 结果数量(免费套餐最多 5 条) |
offset | 否 | 第一条结果的索引 |
响应结构:
{
"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": {}
}
]
}
注意: 对于英文评论较少的地点,评论可能返回空的 data: []。对于国际酒店,可以尝试不同的 language 值。
4. 地点照片
获取最近的最多 5 张照片,并提供多种尺寸选项。
curl -s "https://api.content.tripadvisor.com/api/v1/location/{locationId}/photos?key=$TRIPADVISOR_API_KEY&language=en"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
locationId | 是(路径) | TripAdvisor 地点 ID |
language | 否 | 默认值为 en |
limit | 否 | 结果数量(免费套餐最多 5 条) |
offset | 否 | 第一条结果的索引 |
source | 否 | 逗号分隔:Expert、Management、Traveler |
响应中的照片尺寸:
thumbnail:50x50,裁剪后small:150x150,裁剪后medium:最长边为 250pxlarge:最长边为 550pxoriginal:原始分辨率
5. 附近地点搜索
查找坐标附近的地点。最多返回 10 个结果。
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"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
latLong | 是 | 纬度/经度对,例如 59.3127,18.0716 |
category | 否 | hotels、restaurants、attractions、geos |
phone | 否 | 电话号码筛选条件 |
address | 否 | 地址筛选条件 |
radius | 否 | 距离 latLong 的半径 |
radiusUnit | 否 | km、mi、m |
language | 否 | 默认值为 en |
每条结果都包含 distance(公里)和 bearing(例如 “northwest”)。
常见工作流
酒店调研(最常见)
# 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¤cy=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
比较同一城市的多家酒店
# 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
查找酒店附近的餐厅
# 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"
目的地调研
# 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"
适用场景
- 评估酒店(评分、排名、细分评分、评论情感)
- 比较酒店附近或某个街区内的餐厅
- 查找目的地附近的景点和活动
- 获取 TripAdvisor 排名数据(“斯德哥尔摩 168 家酒店中的第 1 名”)
- 查看设施、旅行类型细分数据和获奖情况
- 核实酒店所属连锁品牌和街区信息
不适用场景
- 价格或空房情况。 TripAdvisor Content API 不提供价格数据。查询价格请使用
serpapi、liteapi、chase-travel、amex-travel或rapidapi。 - 预订。 此处仅提供只读数据,不支持预订。
- 批量抓取。 每月 5,000 次调用,请谨慎使用。
酒店比较的关键数据点
比较酒店时,请提取并展示:
| 字段 | 路径 | 示例 |
|---|---|---|
| 评分 | rating | "4.6" |
| 评论数 | num_reviews | "845" |
| 排名 | ranking_data.ranking_string | "斯德哥尔摩 168 家酒店中的第 10 名" |
| 位置细分评分 | subratings.0.value | "4.7" |
| 服务细分评分 | subratings.3.value | "4.7" |
| 清洁度细分评分 | subratings.5.value | "4.8" |
| 价格等级 | price_level | "$$$$" |
| 占比最高的旅行类型 | 最高的 trip_types[].value | "情侣:381" |
| 奖项 | awards[].display_name | "Travelers Choice 2025" |
| 早餐 | amenities 包含 "Breakfast included" | 是/否 |
| 连锁品牌 | parent_brand | "Worldhotels" |
支持的语言
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
搜索斯堪的纳维亚酒店的当地语言评论时,丹麦语使用 da,挪威语使用 no,瑞典语使用 sv。