# Kayak API

> Kayak returns flight options, hotel rates, and rental car offers, available as a workflow and API.

Kayak returns flight fares, sellers, itineraries, and details; Search flights needs an origin, destination, and departure date. Search hotels returns rates, guest scores, and property details; it needs a location and check-in and check-out dates. Search rental cars returns offers, prices, and vehicle details; it needs a pick-up location and pick-up and drop-off dates.

- Page: https://fous.com/tools/kayak
- Handle: `@kayak`
- Category: [Travel](https://fous.com/tools/category/travel)
- Source website: https://kayak.com
- Last verified: Sep 29, 2026

## Methods

### Search flights

Operation `search_flights`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Compare Kayak flight options by route and date, including itineraries, lowest listed USD fare per traveler, booking site, and flight details. Fares and availability can change at booking.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"quickest"` | Flight order, for example cheapest. |
| `cabin` | string | no | `"premium_economy"` | Cabin class, for example business. |
| `adults` | integer | no | `2` | Number of adults, for example 2. |
| `origin` | string | yes | `"Boston"` | Departure city or airport, for example Boston. |
| `destination` | string | yes | `"Lisbon"` | Arrival city or airport, for example Lisbon. |
| `max_results` | integer | no | `50` | Maximum number of options, for example 10. |
| `return_date` | string | no | `"2026-11-19"` | Return date, for example 2026-11-17. Omit for one-way flights. |
| `nonstop_only` | boolean | no | `true` | Only nonstop flight options, for example true. |
| `departure_date` | string | yes | `"2026-11-10"` | Departure date, for example 2026-11-10. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "origin",
    "destination",
    "departure_date"
  ],
  "properties": {
    "sort": {
      "enum": [
        "best",
        "cheapest",
        "quickest"
      ],
      "type": "string",
      "default": "best",
      "description": "Flight order, for example cheapest.",
      "examples": [
        "quickest",
        "cheapest"
      ]
    },
    "cabin": {
      "enum": [
        "economy",
        "premium_economy",
        "business",
        "first"
      ],
      "type": "string",
      "default": "economy",
      "description": "Cabin class, for example business.",
      "examples": [
        "premium_economy",
        "business"
      ]
    },
    "adults": {
      "type": "integer",
      "default": 1,
      "maximum": 9,
      "minimum": 1,
      "description": "Number of adults, for example 2.",
      "examples": [
        2
      ]
    },
    "origin": {
      "type": "string",
      "title": "From",
      "minLength": 2,
      "description": "Departure city or airport, for example Boston.",
      "examples": [
        "Boston",
        "New York"
      ]
    },
    "destination": {
      "type": "string",
      "title": "To",
      "minLength": 2,
      "description": "Arrival city or airport, for example Lisbon.",
      "examples": [
        "Lisbon",
        "London"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of options, for example 10.",
      "x-fous-developer": true,
      "examples": [
        50,
        5
      ]
    },
    "return_date": {
      "type": "string",
      "format": "date",
      "description": "Return date, for example 2026-11-17. Omit for one-way flights.",
      "examples": [
        "2026-11-19"
      ]
    },
    "nonstop_only": {
      "type": "boolean",
      "default": false,
      "description": "Only nonstop flight options, for example true.",
      "examples": [
        true
      ]
    },
    "departure_date": {
      "type": "string",
      "format": "date",
      "description": "Departure date, for example 2026-11-10.",
      "examples": [
        "2026-11-10",
        "2026-11-12"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "quickest",
      "cabin": "premium_economy",
      "origin": "Boston",
      "destination": "Lisbon",
      "max_results": 50,
      "departure_date": "2026-11-10"
    },
    {
      "origin": "Boston",
      "destination": "Lisbon",
      "departure_date": "2026-11-10"
    },
    {
      "sort": "cheapest",
      "cabin": "business",
      "adults": 2,
      "origin": "New York",
      "destination": "London",
      "max_results": 5,
      "return_date": "2026-11-19",
      "nonstop_only": true,
      "departure_date": "2026-11-12"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `flights` | array |  |  |
| `flights[].seller` | string | `"Delta"` |  |
| `flights[].currency` | string | `"USD"` | Fare currency, USD. |
| `flights[].kayak_url` | string | `"https://www.kayak.com/flights/BOS-LIS/2026-11-10/premium/fac831c2577090fd0b113e615adf68a83?viewRank=0"` |  |
| `flights[].return_stops` | any | `0` |  |
| `flights[].outbound_stops` | integer | `0` |  |
| `flights[].return_airlines` | any |  |  |
| `flights[].outbound_airlines` | array |  |  |
| `flights[].return_travel_time` | any | `"8 h 05 min"` |  |
| `flights[].return_arrival_time` | string or null | `"2026-11-19T17:20-05:00"` | Local arrival time with timezone offset. |
| `flights[].outbound_travel_time` | string | `"6 h 20 min"` |  |
| `flights[].return_stop_airports` | any |  |  |
| `flights[].outbound_arrival_time` | string or null | `"2026-11-11T09:00+00:00"` | Local arrival time with timezone offset. |
| `flights[].return_departure_time` | string or null | `"2026-11-19T14:15+00:00"` | Local departure time with timezone offset. |
| `flights[].return_flight_numbers` | any |  |  |
| `flights[].return_origin_airport` | any | `"London Heathrow"` |  |
| `flights[].outbound_stop_airports` | array |  |  |
| `flights[].price_per_traveler_usd` | number | `1609` | Lowest listed price per traveler in USD. |
| `flights[].outbound_departure_time` | string or null | `"2026-11-10T21:40-05:00"` | Local departure time with timezone offset. |
| `flights[].outbound_flight_numbers` | array |  |  |
| `flights[].outbound_origin_airport` | string | `"Boston Logan Intl"` |  |
| `flights[].return_destination_airport` | any | `"New York John F Kennedy Intl"` |  |
| `flights[].return_origin_airport_code` | any | `"LHR"` |  |
| `flights[].return_travel_time_minutes` | any | `485` |  |
| `flights[].outbound_destination_airport` | string | `"Lisbon Humberto Delgado"` |  |
| `flights[].outbound_origin_airport_code` | string | `"BOS"` |  |
| `flights[].outbound_travel_time_minutes` | integer | `380` |  |
| `flights[].return_destination_airport_code` | any | `"JFK"` |  |
| `flights[].outbound_destination_airport_code` | string | `"LIS"` |  |

**Example input**

```json
{
  "sort": "quickest",
  "cabin": "premium_economy",
  "origin": "Boston",
  "destination": "Lisbon",
  "max_results": 50,
  "departure_date": "2026-11-10"
}
```

**Example output**

```json
{
  "flights": [
    {
      "seller": "Delta",
      "currency": "USD",
      "kayak_url": "https://www.kayak.com/flights/BOS-LIS/2026-11-10/premium/fac831c2577090fd0b113e615adf68a83?viewRank=0",
      "return_stops": null,
      "outbound_stops": 0,
      "return_airlines": null,
      "outbound_airlines": [
        "Delta"
      ],
      "return_travel_time": null,
      "return_arrival_time": null,
      "outbound_travel_time": "6 h 20 min",
      "return_stop_airports": null,
      "outbound_arrival_time": "2026-11-11T09:00+00:00",
      "return_departure_time": null,
      "return_flight_numbers": null,
      "return_origin_airport": null,
      "outbound_stop_airports": [],
      "price_per_traveler_usd": 1609,
      "outbound_departure_time": "2026-11-10T21:40-05:00",
      "outbound_flight_numbers": [
        "DL 124"
      ],
      "outbound_origin_airport": "Boston Logan Intl",
      "return_destination_airport": null,
      "return_origin_airport_code": null,
      "return_travel_time_minutes": null,
      "outbound_destination_airport": "Lisbon Humberto Delgado",
      "outbound_origin_airport_code": "BOS",
      "outbound_travel_time_minutes": 380,
      "return_destination_airport_code": null,
      "outbound_destination_airport_code": "LIS"
    }
  ]
}
```

### Search hotels

Operation `search_hotels`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Compare Kayak hotel rates across booking sites for a city or neighborhood and stay dates. Rates assume two adults in one room; stay totals are not shown, and results are limited to hotels on the public location page.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"cheapest"` | Order hotels by recommendation, lowest price, or guest score, for example cheapest. |
| `check_in` | string | yes | `"2026-11-12"` | Arrival date, for example 2026-11-10. |
| `location` | string | yes | `"Seattle"` | City or area to search, for example Chicago. |
| `check_out` | string | yes | `"2026-11-14"` | Departure date, for example 2026-11-12. |
| `min_stars` | integer | no | `3` | Minimum hotel class from 1 to 5 stars, for example 4. |
| `max_results` | integer | no | `6` | Maximum hotels to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "location",
    "check_in",
    "check_out"
  ],
  "properties": {
    "sort": {
      "enum": [
        "recommended",
        "cheapest",
        "top_rated"
      ],
      "type": "string",
      "default": "recommended",
      "description": "Order hotels by recommendation, lowest price, or guest score, for example cheapest.",
      "examples": [
        "cheapest",
        "top_rated"
      ]
    },
    "check_in": {
      "type": "string",
      "format": "date",
      "description": "Arrival date, for example 2026-11-10.",
      "examples": [
        "2026-11-12",
        "2026-11-10"
      ]
    },
    "location": {
      "type": "string",
      "description": "City or area to search, for example Chicago.",
      "examples": [
        "Seattle",
        "Chicago",
        "Lincoln Park Chicago"
      ]
    },
    "check_out": {
      "type": "string",
      "format": "date",
      "description": "Departure date, for example 2026-11-12.",
      "examples": [
        "2026-11-14",
        "2026-11-12"
      ]
    },
    "min_stars": {
      "type": "integer",
      "maximum": 5,
      "minimum": 1,
      "description": "Minimum hotel class from 1 to 5 stars, for example 4.",
      "examples": [
        3
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum hotels to return, for example 20.",
      "examples": [
        6,
        5,
        50
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "cheapest",
      "check_in": "2026-11-12",
      "location": "Seattle",
      "check_out": "2026-11-14",
      "min_stars": 3,
      "max_results": 6
    },
    {
      "check_in": "2026-11-10",
      "location": "Chicago",
      "check_out": "2026-11-12"
    },
    {
      "sort": "top_rated",
      "check_in": "2026-11-10",
      "location": "Lincoln Park Chicago",
      "check_out": "2026-11-12",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `hotels` | array |  |  |
| `hotels[].name` | string | `"Ballard's sweet suites"` |  |
| `hotels[].stars` | number or null | `3` |  |
| `hotels[].kayak_link` | string | `"https://www.kayak.com/Seattle-Hotels-Isla-s-sweet-suite---Micro-Studio---91Walkscore.8159812.ksp"` |  |
| `hotels[].guest_rating` | number or null | `8.7` | Guest score out of 10. |
| `hotels[].neighbourhood` | string or null | `"Ballard"` |  |
| `hotels[].kayak_hotel_id` | string or null | `"8159812"` |  |
| `hotels[].lowest_price_site` | string | `"Booking.com"` |  |
| `hotels[].number_of_reviews` | integer or null | `23` |  |
| `hotels[].guest_rating_label` | string or null | `"Very good"` |  |
| `hotels[].total_stay_price_usd` | number or null |  | Full stay price in USD when shown. |
| `hotels[].lowest_nightly_price_usd` | number | `98` | Lowest available USD price per night. |

**Example input**

```json
{
  "sort": "cheapest",
  "check_in": "2026-11-12",
  "location": "Seattle",
  "check_out": "2026-11-14",
  "min_stars": 3,
  "max_results": 6
}
```

**Example output**

```json
{
  "hotels": [
    {
      "name": "Ballard's sweet suites",
      "stars": 3,
      "kayak_link": "https://www.kayak.com/Seattle-Hotels-Isla-s-sweet-suite---Micro-Studio---91Walkscore.8159812.ksp",
      "guest_rating": 8.7,
      "neighbourhood": "Ballard",
      "kayak_hotel_id": "8159812",
      "lowest_price_site": "Booking.com",
      "number_of_reviews": 23,
      "guest_rating_label": "Very good",
      "total_stay_price_usd": null,
      "lowest_nightly_price_usd": 98
    },
    {
      "name": "Coast Seattle Downtown Hotel By Apa",
      "stars": 4,
      "kayak_link": "https://www.kayak.com/Seattle-Hotels-Coast-Seattle-Downtown-Hotel-By-Apa.1071881958.ksp",
      "guest_rating": 8.2,
      "neighbourhood": "Central Business District",
      "kayak_hotel_id": "1071881958",
      "lowest_price_site": "Booking.com",
      "number_of_reviews": 647,
      "guest_rating_label": "Very good",
      "total_stay_price_usd": null,
      "lowest_nightly_price_usd": 103
    },
    {
      "name": "Best Western Plus Pioneer Square Hotel Downtown",
      "stars": 3,
      "kayak_link": "https://www.kayak.com/Seattle-Hotels-Best-Western-Plus-Pioneer-Square-Hotel-Downtown.28809.ksp",
      "guest_rating": 8.4,
      "neighbourhood": "0.5 mifrom Lumen Field, Seattle, United States",
      "kayak_hotel_id": "28809",
      "lowest_price_site": "Priceline",
      "number_of_reviews": 1716,
      "guest_rating_label": "Very good",
      "total_stay_price_usd": null,
      "lowest_nightly_price_usd": 109
    }
  ]
}
```

### Search rental cars

Operation `search_rental_cars`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Compare current Kayak rental car offers for a pick-up place and dates, sorted by total price. Times are available on the hour or half hour; prices and availability may change at booking.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `car_type` | string | no | `"suv"` | Type of car, e.g. suv. |
| `max_results` | integer | no | `5` | Maximum number of offers, e.g. 20. |
| `pickup_date` | string | yes | `"2026-10-22"` | Pick-up date, e.g. 2026-10-21. |
| `pickup_time` | string | no | `"10:30"` | Pick-up time, HH:MM on the hour or half hour, e.g. 10:30. |
| `dropoff_date` | string | yes | `"2026-10-25"` | Drop-off date, e.g. 2026-10-24. |
| `dropoff_time` | string | no | `"11:00"` | Drop-off time, HH:MM on the hour or half hour, e.g. 11:00. |
| `pickup_location` | string | yes | `"San Francisco airport"` | City or airport where you will collect the car, e.g. Miami airport. |
| `dropoff_location` | string | no |  | City or airport for returning the car; defaults to the pick-up place, e.g. Los Angeles airport. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "pickup_location",
    "pickup_date",
    "dropoff_date"
  ],
  "properties": {
    "car_type": {
      "enum": [
        "any",
        "small",
        "medium",
        "large",
        "suv",
        "van",
        "luxury"
      ],
      "type": "string",
      "default": "any",
      "description": "Type of car, e.g. suv.",
      "examples": [
        "suv"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of offers, e.g. 20.",
      "x-fous-developer": true,
      "examples": [
        5
      ]
    },
    "pickup_date": {
      "type": "string",
      "format": "date",
      "description": "Pick-up date, e.g. 2026-10-21.",
      "examples": [
        "2026-10-22",
        "2026-10-21"
      ]
    },
    "pickup_time": {
      "type": "string",
      "default": "10:00",
      "description": "Pick-up time, HH:MM on the hour or half hour, e.g. 10:30.",
      "examples": [
        "10:30"
      ]
    },
    "dropoff_date": {
      "type": "string",
      "format": "date",
      "description": "Drop-off date, e.g. 2026-10-24.",
      "examples": [
        "2026-10-25",
        "2026-10-24"
      ]
    },
    "dropoff_time": {
      "type": "string",
      "default": "10:00",
      "description": "Drop-off time, HH:MM on the hour or half hour, e.g. 11:00.",
      "examples": [
        "11:00"
      ]
    },
    "pickup_location": {
      "type": "string",
      "description": "City or airport where you will collect the car, e.g. Miami airport.",
      "examples": [
        "San Francisco airport",
        "Miami airport"
      ]
    },
    "dropoff_location": {
      "type": "string",
      "description": "City or airport for returning the car; defaults to the pick-up place, e.g. Los Angeles airport."
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "car_type": "suv",
      "max_results": 5,
      "pickup_date": "2026-10-22",
      "pickup_time": "10:30",
      "dropoff_date": "2026-10-25",
      "dropoff_time": "11:00",
      "pickup_location": "San Francisco airport"
    },
    {
      "pickup_date": "2026-10-21",
      "dropoff_date": "2026-10-24",
      "pickup_location": "Miami airport"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `offers` | array |  |  |
| `offers[].bags` | integer or null | `4` | Bags |
| `offers[].seats` | integer or null | `5` | Seats |
| `offers[].car_type` | string or null | `"Intermediate SUV"` | Car class |
| `offers[].kayak_link` | string | `"https://www.kayak.com/book/car?code=1CDmR01Xd0.DAvHH8nEK9LTYwQ_VUUUMA.4760.a48ab9d7a26ce98e5b6545ec1b774a76&h=54ce7b204` | Kayak offer link |
| `offers[].booking_site` | string or null | `"Europcar"` | Booking provider |
| `offers[].pickup_point` | string or null | `"Shuttle"` | How to collect the car |
| `offers[].transmission` | string or null | `"Automatic"` | Transmission |
| `offers[].example_model` | string or null | `"Kia Sportage or similar"` | Example vehicle model |
| `offers[].rental_company` | string or null | `"Europcar"` | Rental company |
| `offers[].total_price_usd` | number | `143` | Total in USD |
| `offers[].price_per_day_usd` | number or null | `48` | Daily price in USD |

**Example input**

```json
{
  "car_type": "suv",
  "max_results": 5,
  "pickup_date": "2026-10-22",
  "pickup_time": "10:30",
  "dropoff_date": "2026-10-25",
  "dropoff_time": "11:00",
  "pickup_location": "San Francisco airport"
}
```

**Example output**

```json
{
  "offers": [
    {
      "bags": 4,
      "seats": 5,
      "car_type": "Intermediate SUV",
      "kayak_link": "https://www.kayak.com/book/car?code=1CDmR01Xd0.DAvHH8nEK9LTYwQ_VUUUMA.4760.a48ab9d7a26ce98e5b6545ec1b774a76&h=54ce7b20400d&sub=8d6c427a7c962f78078a3d01ca7feabc&viewId=35dca10c-7b55-4a5a-b996-bc10f8c9a…",
      "booking_site": "Europcar",
      "pickup_point": "Shuttle",
      "transmission": "Automatic",
      "example_model": "Kia Sportage or similar",
      "rental_company": "Europcar",
      "total_price_usd": 143,
      "price_per_day_usd": 48
    },
    {
      "bags": 3,
      "seats": 5,
      "car_type": "Compact SUV",
      "kayak_link": "https://www.kayak.com/book/car?code=1CDmR01Xd0.DAvHH8nEK9LTYwQ_VUUUMA.4899.535fd76451d2cecab759060e8e15f861&h=fef322923939&sub=471d72f7eefad476507ce8fed2283e49&viewId=35dca10c-7b55-4a5a-b996-bc10f8c9a…",
      "booking_site": "Europcar",
      "pickup_point": "Shuttle",
      "transmission": "Automatic",
      "example_model": "Jeep Compass or similar",
      "rental_company": "Europcar",
      "total_price_usd": 147,
      "price_per_day_usd": 49
    },
    {
      "bags": 5,
      "seats": 5,
      "car_type": "Standard SUV",
      "kayak_link": "https://www.kayak.com/book/car?code=1CDmR01Xd0.DAvHH8nEK9LTYwQ_VUUUMA.5020.f04e131ce6275c35ec0241110b7485ed&h=85c1733fa3eb&sub=ff32fe8eb378d04987bdce55f56a7557&viewId=35dca10c-7b55-4a5a-b996-bc10f8c9a…",
      "booking_site": "Europcar",
      "pickup_point": "Shuttle",
      "transmission": "Automatic",
      "example_model": "Dodge Journey or similar",
      "rental_company": "Europcar",
      "total_price_usd": 151,
      "price_per_day_usd": 51
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@kayak",
  "visibility": "public",
  "operation": "search_flights",
  "version": 1,
  "input": {
    "sort": "quickest",
    "cabin": "premium_economy",
    "origin": "Boston",
    "destination": "Lisbon",
    "max_results": 50,
    "departure_date": "2026-11-10"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@kayak\",\n  \"visibility\": \"public\",\n  \"operation\": \"search_flights\",\n  \"version\": 1,\n  \"input\": {\n    \"sort\": \"quickest\",\n    \"cabin\": \"premium_economy\",\n    \"origin\": \"Boston\",\n    \"destination\": \"Lisbon\",\n    \"max_results\": 50,\n    \"departure_date\": \"2026-11-10\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@kayak",
  "visibility": "public",
  "operation": "search_flights",
  "version": 1,
  "input": {
    "sort": "quickest",
    "cabin": "premium_economy",
    "origin": "Boston",
    "destination": "Lisbon",
    "max_results": 50,
    "departure_date": "2026-11-10"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/kayak`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `search_flights`: Search flights. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_hotels`: Search hotels. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_rental_cars`: Search rental cars. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-kayak https://api.fous.com/mcp/tools/kayak --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare flight fares and itineraries across booking sites
- Find hotel rates and guest scores for a destination
- Compare rental car prices for travel dates
- Review flight stops, airlines, and travel times
- Plan car pick-up and drop-off locations

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Kayak tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Kayak account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from kayak.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What flight options are available for my route and dates?

Search flights returns itineraries, fares, booking sites, and flight details. Provide an origin, destination, and departure date; add a return date for round trips.

### What are the hotel rates for my stay?

Search hotels returns available nightly rates, property details, and guest scores. Provide a location and check-in and check-out dates.

### What rental cars can I compare for my dates?

Search rental cars returns offers with total and daily prices, car details, and booking providers. Provide a pick-up location and pick-up and drop-off dates.

## Related

- [Priceline API](https://fous.com/tools/priceline.md): Priceline finds travel deals and returns publicly priced hotel options with ratings, USD prices and cancellation details, plus rental-car offers whose prices may change at checkout.
- [Expedia API](https://fous.com/tools/expedia.md): Expedia helps travelers find hotels, vacation stays, and travel deals, with hotel prices and flight options for selected destinations and dates; flight listings may be limited.
- [Google Hotels API](https://fous.com/tools/google-hotels.md): Google Hotels finds stays, guest details and reviews, and compares booking-site totals, cancellation and links for up to six adults; prices and availability can change, and some prices or topic ratings may be unavailable.
- [Trip.com API](https://fous.com/tools/trip-com.md): Trip.com offers hotel and flight bookings, with hotel listings limited to initial public results and prices and fares subject to change.
- [Google Flights API](https://fous.com/tools/google-flights.md): Google Flights returns route schedules, public fares, monthly lowest prices, and flight or destination options with times, stops, emissions, and fares that may change.
- [Agoda API](https://fous.com/tools/agoda.md): Agoda finds stays and room prices for selected dates; displayed prices exclude taxes and fees, and availability, prices, and cancellation terms may change before booking.
- [Booking.com API](https://fous.com/tools/booking-com.md): Booking.com helps find stays, property details and public guest reviews; prices and cancellation terms depend on selected dates, and displayed prices may exclude taxes and fees.
- [Tripadvisor API](https://fous.com/tools/tripadvisor.md): Tripadvisor provides traveler-ranked first-page city listings of attractions, restaurants and hotels, plus latest reviews; hotel prices and booking sites depend on supplied stay dates and availability.
- [All Travel tools](https://fous.com/tools/category/travel)
