# KAYAK Hotel Prices & Best Hotels by City

> KAYAK Hotel Prices & Best Hotels by City is a paid API for AI agents from api.healthtravel-api.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-29).

Returns KAYAK's lowest nightly price headline and a list of ~16 top hotels for a given city, including name, stars, address, price, guest rating, review count, phone, and KAYAK URL.

## Facts

- Endpoint: GET https://api.healthtravel-api.workers.dev/api/travel/hotel-booking-sites-direct-hotel-websites?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/kayak-hotel-prices-best-hotels-by-city-9623fe55
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_41dC59JvCUZokROT2Hll2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability kayak-hotel-prices-best-hotels-by-city-9623fe55
```

Example prompt: What are the best hotels in Paris right now according to KAYAK — I want to see prices per night, star ratings, and guest scores for the top options.

## When to prefer this

Choose this endpoint when you need a quick, no-date-needed snapshot of KAYAK's recommended hotels and headline pricing for a city — ideal for destination research, shortlisting, or price benchmarking. Prefer over live booking APIs when you don't need specific check-in/check-out date availability. Use when KAYAK's aggregated comparison data (across booking sites and hotel websites) is preferred over a single OTA's inventory.

## Known failure modes

- City name not matched by KAYAK's place search — returns empty or mismatched results
- City has no KAYAK hotel listings — count may be 0 or response may error
- Prices are recent/cached, not live date-specific — may not reflect current availability
- Rate limiting or upstream KAYAK page changes could cause parse failures
- Ambiguous city names (e.g. 'Springfield') may resolve to an unexpected location

## How this service works

KAYAK hotel prices for a city (KAYAK compares booking sites and hotel websites): the city's lowest nightly price headline and KAYAK's 'best hotels' list (usually ~16) with name, star rating, street address, price shown per night in USD, guest rating out of 10 with review count, phone and KAYAK hotel URL. The city is matched with KAYAK's own place search. Prices are KAYAK's recent prices on its public city page, not a live date search.

## Output

A JSON object containing the matched city name, KAYAK city ID, the overall lowest nightly price headline, currency (USD), a timestamp, the source KAYAK city page URL, and an array of up to ~16 hotels each with: name, star rating (integer), street address, nightly price (USD integer and formatted string), guest rating out of 10, review count, phone number, and KAYAK detail page URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "city"
     ],
     "properties": {
      "city": {
       "type": "string",
       "description": "City name, e.g. Paris, New York, Rome"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "city": "Paris, France",
  "count": 16,
  "hotels": [
   {
    "url": "https://www.kayak.com/Paris-Hotels-Hotel-Kyriad-Paris-Bercy-Village.35203.ksp",
    "name": "Campanile Paris 12 - Bercy Village",
    "phone": "+33 1 44 67 75 75",
    "price": 117,
    "stars": 3,
    "rating": 8.1,
    "address": "17 Rue Baron Le Roy, 75012, Paris, France",
    "reviews": 8687,
    "priceText": "$117"
   },
   {
    "url": "https://www.kayak.com/Paris-Hotels-NH-Paris-Gare-de-l-Est.137647.ksp",
    "name": "NH Paris Gare de l'Est",
    "phone": "+33 1 55 26 05 05",
    "price": 152,
    "stars": 4,
    "rating": 8.4,
    "address": "5 Rue du 8 Mai 1945, 75010, Paris, France",
    "reviews": 7239,
    "priceText": "$152"
   }
  ],
  "source": "https://www.kayak.com/Paris-Hotels.36014.hotel.ksp",
  "currency": "USD",
  "lowPrice": 140,
  "checkedAt": "2026-10-23T09:36:36.500Z",
  "kayakCityId": "36014",
  "headlineFromPrice": 54
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/kayak-hotel-prices-best-hotels-by-city-9623fe55/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.healthtravel-api.workers.dev](https://www.zero.xyz/host/api.healthtravel-api.workers.dev/llms.txt)
