FlightPowers: compare hotel rates across sources
compare_hotel_ratesFlightPowers cross-source comparison: prices one stay on every source the caller has a key for. Input: a free-text destination the way a person would write it ("Rome", "Tokyo Shibuya"), check-in and check-out dates, and how many adults. Returns one row per source: the cheapest and the median stay total, how many places were found, the currency and when it was read.
Every row carries the caveats that decide whether one source is cheaper. rating_scale is 10 on Booking and 5 on Airbnb. taxes_included is true on Booking, where excluded taxes are folded into the price, and null on Airbnb, where we have not established the tax treatment of the display total; a null is not a no. A source the caller has no key for is listed in providers_skipped and is not counted anywhere in the comparison.
Rates go stale within minutes: a current comparison comes from a new call, not from an earlier result.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | Number of adult guests. Defaults to the upstream default when omitted. | |
| children | No | Number of children sharing the room. | |
| currency | No | ISO currency code for every row, e.g. "usd". Sources are asked for the same currency so the totals are comparable; a row that came back in a different one says so in its own currency field and is not converted. | |
| providers | No | Which sources to price, e.g. ["booking", "airbnb"]. Defaults to both. A source the caller has no RapidAPI key for is not called and appears in providers_skipped. | |
| destination | Yes | Where to stay, in free text the way a person would write it, e.g. "Rome" or "Tokyo Shibuya". A city, district, landmark or region all work; no internal location ID is needed. | |
| checkin_date | Yes | First night of the stay, "YYYY-MM-DD". | |
| checkout_date | Yes | Departure morning, "YYYY-MM-DD". Must be after checkin_date. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| nights | No | Nights between the two dates, or null when the dates could not be read as dates. | |
| caveats | No | Sentences on what makes the sources' totals differ -- rating scales, tax treatment, currencies, a source that did not answer. | |
| message | No | ||
| children | No | ||
| currency | No | The currency every source was ASKED for. | |
| api_usage | No | With the caller's own key: what this call cost their RapidAPI plan, and what remains on it. On a free signed-in search (`trial` present): the day's free-search counter instead, and no plan figures -- the search ran on FlightPowers' key and nothing is billed to the user. Present on every response that reached the upstream, including a degraded one. | |
| providers | Yes | ||
| signup_url | No | Where the caller subscribes or changes plan. | |
| destination | No | ||
| checkin_date | No | ||
| checkout_date | No | ||
| needs_api_key | No | True when no usable RapidAPI key arrived with the call, or the upstream rejected the one that did. No search was run and nothing was billed; signup_url and message describe the fix. | |
| quota_exhausted | No | True when the caller's RapidAPI plan has no requests left for the current period. | |
| providers_skipped | No | Sources that were NOT called, each named with why and where to subscribe. A source here contributed nothing to results and is counted nowhere. It is listed rather than dropped because a silently missing source is indistinguishable from a source that had nothing. |