/install hotel-price-finder
Hotel Price Finder - Multi OTA
Compare real-time hotel prices across Booking.com, Agoda, Trip.com and more. No API key required.
When to Use
Activate when user asks about hotel search, price comparison, cheapest booking site, or accommodation recommendations.
Step 1: Parse Query
Extract: destination (required), checkIn/checkOut (required, YYYY-MM-DD), adults (default 2), rooms (default 1), currency (default USD), maxBudget, limit (default 10). If dates missing, ask the user.
Step 2: Resolve Destination
Xotelo Location Key
Xotelo uses TripAdvisor keys (g{number}). For unlisted cities, call:
curl -s "https://data.xotelo.com/api/search?q=DESTINATION&limit=5"
Common keys: Seoul=g294197, Busan=g297884, Jeju=g983296, Tokyo=g298184, Osaka=g298566, Kyoto=g298564, Bangkok=g293916, Phuket=g293920, Singapore=g294265, Bali=g294226, Kuala Lumpur=g298570, Hong Kong=g294217, Taipei=g293913, Da Nang=g298085, Ho Chi Minh=g293925, Hanoi=g293924, Cebu=g294261, Manila=g298573, Paris=g187147, London=g186338, New York=g60763
Agoda City ID (for booking links)
curl -s "https://www.agoda.com/api/cronos/search/GetUnifiedSuggestResult/3/1/1/0/en-us/?searchText=DESTINATION&origin=US" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Extract ObjectId where PageTypeId == 5 and SearchType == 1.
Common IDs: Seoul=14690, Busan=17172, Tokyo=5085, Osaka=9590, Bangkok=9395, Singapore=4064, Bali=17193, Hong Kong=16808
Step 3: Search Hotels (Xotelo API - Free)
Get Hotel List
curl -s "https://data.xotelo.com/api/list?location_key=${LOCATION_KEY}&limit=${LIMIT}"
Returns per hotel: name, key, review_summary.rating (out of 5), review_summary.count, price_ranges.minimum/maximum, geo, image, url.
Get OTA Prices
curl -s "https://data.xotelo.com/api/rates?hotel_key=${HOTEL_KEY}&chk_in=${CHECK_IN}&chk_out=${CHECK_OUT}¤cy=${CURRENCY}"
Returns per OTA: code, name, rate (before tax), tax. Add 1s delay between requests.
Generate Booking Links
Xotelo doesn't provide booking URLs. Build them per OTA (URL-encode hotel name as {H}):
| OTA Code | Booking URL |
|---|---|
| BookingCom | https://www.booking.com/searchresults.html?ss={H}&checkin={CHECK_IN}&checkout={CHECK_OUT}&group_adults={ADULTS}&no_rooms={ROOMS} |
| Agoda | https://www.agoda.com/search?q={H}&city={AGODA_CITY_ID}&checkIn={CHECK_IN}&checkOut={CHECK_OUT}&los={LOS}&rooms={ROOMS}&adults={ADULTS} |
| CtripTA | https://www.trip.com/hotels/list?keyword={H}&checkin={CHECK_IN}&checkout={CHECK_OUT} |
| HotelsCom | https://www.hotels.com/search.do?q={H}&checkin={CHECK_IN}&checkout={CHECK_OUT} |
| Expedia | https://www.expedia.com/Hotel-Search?destination={H}&d1={CHECK_IN}&d2={CHECK_OUT}&adults={ADULTS}&rooms={ROOMS} |
Price Heatmap (optional, for flexible dates)
curl -s "https://data.xotelo.com/api/heatmap?hotel_key=${HOTEL_KEY}¤cy=${CURRENCY}"
Step 4: Apify Mode (Optional)
If APIFY_API_KEY is set, use for Agoda-specific deep search:
curl -s -X POST "https://api.apify.com/v2/acts/knagymate~fast-agoda-scraper/runs?token=${APIFY_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"city":"'"${DESTINATION}"'","checkIn":"'"${CHECK_IN}"'","checkOut":"'"${CHECK_OUT}"'","rooms":'"${ROOMS}"',"adults":'"${ADULTS}"',"currency":"'"${CURRENCY}"'","maxItems":15}'
Poll .data.status until SUCCEEDED, then fetch from .data.defaultDatasetId.
Step 5: Output Format
## 🏨 Hotel Search: [Destination]
📅 [CheckIn] → [CheckOut] ([N] nights) | 👤 [Adults] | 🛏️ [Rooms] room(s)
### #1 [Hotel Name] ⭐ [Rating]/5 ([Reviews] reviews)
| OTA | Rate | Tax | Total | Book |
|-----|------|-----|-------|------|
| **Agoda** | $280 | $53 | **$333 ← Best** | [Book](url) |
| Trip.com | $347 | $34 | $381 | [Book](url) |
💡 Save $82 by booking on Agoda vs Booking.com!
Rules: Sort OTAs cheapest first. Mark best deal. Show savings. Always include booking links. Include Agoda full search URL at bottom.
Error Handling
- Destination not found → try Xotelo search API, then ask user
chk_in is invalid→ dates may be too far out, try within 1 year- No OTA rates → show TripAdvisor link instead
- Apify fail → auto fallback to Xotelo free mode
- Rate limit → add 1s delay, limit to 5 hotels per batch
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install hotel-price-finder - After installation, invoke the skill by name or use
/hotel-price-finder - Provide required inputs per the skill's parameter spec and get structured output
What is Hotel Price Finder - Multi OTA?
Compare hotel prices across Booking.com, Agoda, Trip.com in real-time. Free multi-OTA price comparison with direct booking links. No API key required. It is an AI Agent Skill for Claude Code / OpenClaw, with 273 downloads so far.
How do I install Hotel Price Finder - Multi OTA?
Run "/install hotel-price-finder" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Hotel Price Finder - Multi OTA free?
Yes, Hotel Price Finder - Multi OTA is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Hotel Price Finder - Multi OTA support?
Hotel Price Finder - Multi OTA is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Hotel Price Finder - Multi OTA?
It is built and maintained by Yang (@yangms30); the current version is v1.1.0.