Hotel Price Finder - Multi OTA

v1.1.0

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.

1· 267·0 current·0 all-time
byYang@yangms30

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for yangms30/hotel-price-finder.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Hotel Price Finder - Multi OTA" (yangms30/hotel-price-finder) from ClawHub.
Skill page: https://clawhub.ai/yangms30/hotel-price-finder
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: APIFY_API_KEY (optional - Agoda deep search with 22+ fields)
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install hotel-price-finder

ClawHub CLI

Package manager switcher

npx clawhub@latest install hotel-price-finder
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The name/description (compare Booking.com, Agoda, Trip.com) matches the runtime instructions: the SKILL.md details how to call Xotelo's hotel list and rates endpoints, Agoda autocomplete, and to build OTA booking URLs. No unrelated credentials, binaries, or installs are requested.
Instruction Scope
The instructions instruct the agent to make outbound HTTP calls to data.xotelo.com, Agoda autocomplete endpoints, and build booking links for various OTAs; it also optionally calls Apify if APIFY_API_KEY is set. The skill does not instruct reading local files or unrelated environment variables. Important privacy note: user-provided query data (destination, dates, etc.) will be sent to these third-party endpoints as part of normal operation.
Install Mechanism
No install spec or code files are present (instruction-only), so nothing is written to disk and no external packages are fetched during installation.
Credentials
No required environment variables are declared. APIFY_API_KEY is optional and clearly scoped to an optional Apify-based Agoda scrape; requesting that optional key is proportionate to the described Apify mode.
Persistence & Privilege
always:false and default invocation settings. The skill does not request permanent presence or attempt to modify other skills or agent-wide settings.
Assessment
This skill will send the user's query (destination, dates, number of guests, etc.) to external services (data.xotelo.com, Agoda endpoints, Trip.com/OTA URLs) to fetch results — that's necessary for its functionality. The APIFY_API_KEY is optional and only used for an Apify-based deep scrape; only set it if you trust the source. The skill's source/homepage is unknown, so if you need stronger provenance or privacy guarantees prefer a skill from a known publisher or avoid exposing sensitive personal data (e.g., avoid including full names, passport numbers, or other PII in queries). If you are concerned about logging or telemetry by third-party endpoints, test in a controlled environment or inspect network calls before trusting with sensitive inputs.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Environment variables
APIFY_API_KEY (optional - Agoda deep search with 22+ fields)required
agodavk978f0d8n5f55rg9k0e41gqc0584241vbookingvk978f0d8n5f55rg9k0e41gqc0584241vcheapestvk978f0d8n5f55rg9k0e41gqc0584241vhotelvk978f0d8n5f55rg9k0e41gqc0584241vlatestvk978f0d8n5f55rg9k0e41gqc0584241vprice-comparisonvk978f0d8n5f55rg9k0e41gqc0584241vtravelvk978f0d8n5f55rg9k0e41gqc0584241v
267downloads
1stars
3versions
Updated 3w ago
v1.1.0
MIT-0

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}&currency=${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 CodeBooking URL
BookingComhttps://www.booking.com/searchresults.html?ss={H}&checkin={CHECK_IN}&checkout={CHECK_OUT}&group_adults={ADULTS}&no_rooms={ROOMS}
Agodahttps://www.agoda.com/search?q={H}&city={AGODA_CITY_ID}&checkIn={CHECK_IN}&checkOut={CHECK_OUT}&los={LOS}&rooms={ROOMS}&adults={ADULTS}
CtripTAhttps://www.trip.com/hotels/list?keyword={H}&checkin={CHECK_IN}&checkout={CHECK_OUT}
HotelsComhttps://www.hotels.com/search.do?q={H}&checkin={CHECK_IN}&checkout={CHECK_OUT}
Expediahttps://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}&currency=${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

Comments

Loading comments...