mcpField
S
serpapi

serpapi

github.com/borski生产力78077 次安装2 天前更新
代码仓库

关于 serpapi

serpapi 是一项 SerpAPI 技能,用于查询 Google Flights、Google Hotels 和 Google Travel Explore 数据,适合旅行规划及比较现金票价与奖励兑换。可筛选航班、住宿和目的地,并查看价格信息。

主要功能

  1. 01搜索单程、往返及多城市航班
  2. 02按舱位、价格和经停筛选航班
  3. 03查询酒店与度假租赁价格
  4. 04探索目的地及低价航班
  5. 05查看价格洞察和历史趋势

适用场景

  1. 01比较机票现金价与里程兑换
  2. 02查找符合日期和预算的酒店
  3. 03从出发地探索低价旅行目的地

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill serpapi

安装后在 Claude Code 中输入/serpapi确认已加载。

详细介绍

SerpAPI 技能

通过 SerpAPI 抓取 Google Flights、Google Hotels 和 Google Travel Explore。提供现金机票价格(用于与 Chase/Amex 门户网站进行比较)、酒店价格和目的地发现功能。

来源:serpapi.com — 提供免费套餐,高用量可选付费套餐。

身份验证

.env 中已设置 SERPAPI_API_KEY。所有请求均使用 api_key 查询参数。

API 基础地址

https://serpapi.com/search

Google Flights(现金价格)

搜索机票价格和航班时刻表。对于比较以下问题至关重要:“通过 Chase 门户网站支付 900 美元现金,是否比使用 88,000 United 里程更划算?”(Chase 门户网站的价格现通过 Points Boost 动态调整,部分预订通常为 1.5–2.0 cpp;请核实实际报价。)

单程搜索
curl -s "https://serpapi.com/search?engine=google_flights&departure_id=SFO&arrival_id=NRT&outbound_date=2026-08-10&type=2&adults=2&travel_class=1&currency=USD&stops=2&sort_by=2&api_key=$SERPAPI_API_KEY" | jq '{best: [.best_flights[]? | {price: .price, duration: .total_duration, stops: (.layovers | length), flights: [.flights[] | {from: .departure_airport.id, to: .arrival_airport.id, airline: .airline, flight: .flight_number, depart: .departure_airport.time, arrive: .arrival_airport.time}]}], price_insights: .price_insights}'
参数
参数必填说明
engine是google_flights
departure_id是机场代码,多个代码以逗号分隔:SFO,PDX
arrival_id是机场代码,多个代码以逗号分隔:NRT,HND
outbound_date是YYYY-MM-DD
return_date往返行程YYYY-MM-DD(若 type=1 则必填)
type否1 = 往返(默认),2 = 单程,3 = 多城市
adults否默认值为 1
children否默认值为 0
travel_class否1 = 经济舱,2 = 超级经济舱,3 = 商务舱,4 = 头等舱
stops否0 = 任意,1 = 直飞,2 = 不超过 1 次中转,3 = 不超过 2 次中转
sort_by否1 = 推荐航班,2 = 价格,3 = 出发时间,4 = 到达时间,5 = 时长
include_airlines否IATA 代码:SK,KL,UA,或联盟:STAR_ALLIANCE,SKYTEAM,ONEWORLD
max_price否最高机票价格,单位为 USD
max_duration否最长飞行时长,单位为分钟
bags否随身行李数量
deep_search否设为 true 可获得与浏览器一致的结果(速度较慢)
currency否默认值为 USD
多城市(开口行程)

使用 type=3 和 multi_city_json:

curl -s "https://serpapi.com/search?engine=google_flights&type=3&multi_city_json=%5B%7B%22departure_id%22%3A%22SFO%22%2C%22arrival_id%22%3A%22NRT%22%2C%22date%22%3A%222026-08-05%22%7D%2C%7B%22departure_id%22%3A%22ICN%22%2C%22arrival_id%22%3A%22SFO%22%2C%22date%22%3A%222026-08-26%22%7D%5D&adults=2&travel_class=1&currency=USD&api_key=$SERPAPI_API_KEY" | jq '.'

multi_city_json 的 JSON 值经过 URL 编码。解码后:

[{"departure_id":"SFO","arrival_id":"NRT","date":"2026-08-05"},{"departure_id":"ICN","arrival_id":"SFO","date":"2026-08-26"}]
响应字段

best_flights[] 和 other_flights[] 中的每个航班:

字段说明
price现金价格,单位为 USD
total_duration总时长,单位为分钟
flights[]航段数组,包含航空公司、航班号、时间、飞机和座椅间距
layovers[]中转信息数组,包含每次中转的时长和机场
departure_token获取返程航班选项的令牌(往返行程)
booking_token获取预订选项的令牌

price_insights 包含 lowest_price、price_level(低/通常/高)和 typical_price_range。

门户网站比较计算

Chase Sapphire Reserve:Points Boost 采用动态定价,部分预订通常为 1.5–2.0 cpp(并非固定兑换底线)。请核实具体预订在门户网站上的实际价格。
如果现金价格为 900 美元,通过门户网站预订需支付 60,000 UR 积分。
如果奖励机票需 88,000 United 里程,通过门户网站支付现金更划算。

Amex:通过门户网站通常为 1 cpp(价值较低,建议使用转点)。

Capital One Venture X:通过门户网站为 1 cpp,但转点合作伙伴可能更划算。

Google Hotels

搜索酒店和度假租赁房源,并获取多个 OTA 的价格。

curl -s "https://serpapi.com/search?engine=google_hotels&q=hotels+Tokyo+Japan&check_in_date=2026-08-10&check_out_date=2026-08-13&adults=2&currency=USD&sort_by=3&api_key=$SERPAPI_API_KEY" | jq '[.properties[]? | {name: .name, type: .type, rating: .overall_rating, reviews: .reviews, price: .rate_per_night.extracted_lowest, class: .extracted_hotel_class, amenities: .amenities}] | .[0:10]'
参数
参数必填说明
engine是google_hotels
q是搜索查询:hotels Tokyo Japan
check_in_date是YYYY-MM-DD
check_out_date是YYYY-MM-DD
adults否默认值为 2
children否默认值为 0
sort_by否3 = 价格最低,8 = 评分最高,13 = 评论数最多
min_price / max_price否价格范围筛选
hotel_class否2,3,4,5(以逗号分隔)
rating否7 = 3.5+,8 = 4.0+,9 = 4.5+
vacation_rentals否设为 true 可获取 Airbnb 风格的结果
property_token否获取特定房源的详细信息

Google Travel 探索

发现目的地以及从出发地出发的最低价航班。适合查询“8 月可以便宜地飞去哪里?”

curl -s "https://serpapi.com/search?engine=google_travel_explore&departure_id=SFO&outbound_date=2026-08-05&return_date=2026-08-26&adults=2&travel_class=1&currency=USD&api_key=$SERPAPI_API_KEY" | jq '[.destinations[]? | {name: .name, country: .country, airport: .destination_airport.code, price: .flight_price, duration: .flight_duration, stops: .number_of_stops, airline: .airline}] | .[0:15]'
参数
参数必填描述
engine是google_travel_explore
departure_id是机场代码或 kgmid
arrival_id否特定目的地
arrival_area_id否区域 kgmid(例如,欧洲为 /m/02j9z)
outbound_date否YYYY-MM-DD
return_date否YYYY-MM-DD
month否灵活日期的 1-12
travel_duration否1 = 周末,2 = 1 周,3 = 2 周
interest否/g/11bc58l13w = 户外,/m/0b3yr = 海滩
include_airlines否按航空公司或航空联盟筛选
max_price否最高价格
stops否与 Google Flights 相同

工作流:比较奖励票与现金价格

  1. 通过 SerpAPI 在 Google Flights 上查询现金价格
  2. 估算门户网站的费用。Chase 采用动态“Points Boost”定价(部分预订约为 1.5-2.0cpp,并非固定费率)。Amex/Capital One 约为 1.0cpp。粗略估算时,请将门户网站的实际报价与现金价格进行比较;不要假设 Chase 的 cpp 是固定的。
  3. 与 Seats.aero 的奖励票价格进行比较
  4. 选择较低的价格(同时考虑你对每种积分的估值)

说明

  • 缓存结果免费(缓存 1 小时)。设置 no_cache=true 可强制获取最新结果。
  • deep_search=true 会返回与浏览器一致的结果,但速度较慢。
  • 结果包含带有历史价格数据和趋势的 price_insights。
  • 多城市行程原生支持开口行程。
  • 酒店支持度假租赁模式,可获取类似 Airbnb 的结果。

评论

支持 Markdown