# Booking.com API

> Booking.com stay searches, property details, and guest reviews are available as a workflow and API.

Booking.com’s Search stays finds stays by destination and dates, with optional guest counts, price, review, and cancellation filters. Get property returns property and room details; provide a property name and city or a Booking.com link. Get property reviews returns public guest reviews; provide a property name and city or a Booking.com link.

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

## Methods

### Get property

Operation `get_property`, 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.

Get one Booking.com property’s details by name and city or link. Room prices and cancellation terms are shown only when available for the selected dates.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `adults` | integer | no | `2` | Number of adult guests. Example: 2. |
| `check_in` | string | no | `"2026-11-10"` | Arrival date for room prices. Example: 2026-11-10. |
| `currency` | string | no | `"USD"` | Currency for room prices. Example: USD. |
| `property` | string | yes | `"https://www.booking.com/hotel/it/quirinale.html"` | Property name with its city, or a Booking.com property link. Example: Hotel Artemide Rome. |
| `check_out` | string | no | `"2026-11-12"` | Departure date for room prices. Example: 2026-11-12. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "property"
  ],
  "properties": {
    "adults": {
      "type": "integer",
      "default": 2,
      "minimum": 1,
      "description": "Number of adult guests. Example: 2.",
      "examples": [
        2
      ]
    },
    "check_in": {
      "type": "string",
      "format": "date",
      "description": "Arrival date for room prices. Example: 2026-11-10.",
      "examples": [
        "2026-11-10"
      ]
    },
    "currency": {
      "type": "string",
      "default": "USD",
      "description": "Currency for room prices. Example: USD.",
      "examples": [
        "USD"
      ]
    },
    "property": {
      "type": "string",
      "description": "Property name with its city, or a Booking.com property link. Example: Hotel Artemide Rome.",
      "examples": [
        "https://www.booking.com/hotel/it/quirinale.html",
        "Hotel Artemide Rome"
      ]
    },
    "check_out": {
      "type": "string",
      "format": "date",
      "description": "Departure date for room prices. Example: 2026-11-12.",
      "examples": [
        "2026-11-12"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "adults": 2,
      "check_in": "2026-11-10",
      "currency": "USD",
      "property": "https://www.booking.com/hotel/it/quirinale.html",
      "check_out": "2026-11-12"
    },
    {
      "property": "Hotel Artemide Rome"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `rooms` | array |  |  |
| `rooms[].beds` | string or null | `"1 queen bed or 2 twin beds"` |  |
| `rooms[].name` | string or null | `"Small Double or Twin Room"` |  |
| `rooms[].price` | number or null | `385` |  |
| `rooms[].size_m2` | number or null | `15` |  |
| `rooms[].currency` | string or null | `"USD"` |  |
| `rooms[].max_guests` | integer or null | `2` |  |
| `rooms[].cancellation_terms` | string or null | `"Free cancellation before November 8, 2026; No prepayment needed – pay at the property"` |  |
| `address` | string or null | `"Via Nazionale 7, Central Station, 00184 Rome, Italy"` |  |
| `description` | string or null |  |  |
| `house_rules` | object |  |  |
| `house_rules.pets` | string or null | `"Pets are not allowed."` |  |
| `house_rules.check_in` | string or null | `"From 2:30 PM Guests are required to show a photo ID and credit card at check-in. You need to let the property know what` |  |
| `house_rules.children` | string or null | `"Child policies Children of all ages are welcome. Children 8 and above will be charged as adults at this property. To se` |  |
| `house_rules.check_out` | string or null | `"From 6:00 AM to 12:00 PM"` |  |
| `house_rules.cancellation_and_prepayment` | string or null | `"Cancellation and prepayment policies vary according to accommodation type. Check what conditions apply to each option w` |  |
| `photo_links` | array |  |  |
| `review_word` | string or null | `"Very Good"` |  |
| `star_rating` | integer or null | `4` |  |
| `booking_link` | string or null | `"https://www.booking.com/hotel/it/quirinale.html"` |  |
| `review_count` | integer or null | `5145` |  |
| `review_score` | number or null | `8.2` |  |
| `property_name` | string or null | `"Hotel Quirinale"` |  |
| `property_type` | string or null | `"Hotel"` |  |
| `category_scores` | object |  |  |
| `facility_groups` | array |  |  |
| `facility_groups[].group` | string | `"General"` |  |
| `facility_groups[].facilities` | array |  |  |
| `most_popular_facilities` | array |  |  |

**Example input**

```json
{
  "adults": 2,
  "check_in": "2026-11-10",
  "currency": "USD",
  "property": "https://www.booking.com/hotel/it/quirinale.html",
  "check_out": "2026-11-12"
}
```

**Example output**

```json
{
  "rooms": [
    {
      "beds": "1 queen bed or 2 twin beds",
      "name": "Small Double or Twin Room",
      "price": 385,
      "size_m2": 15,
      "currency": "USD",
      "max_guests": 2,
      "cancellation_terms": "Free cancellation before November 8, 2026; No prepayment needed – pay at the property"
    }
  ],
  "address": "Via Nazionale 7, Central Station, 00184 Rome, Italy",
  "description": "Set in a 19th-century building, the Quirinale is 20 minutes' walk from the Coliseum. This historical hotel is connected to Rome Opera House through a passageway in its leafy courtyard. Rooms come with…",
  "house_rules": {
    "pets": "Pets are not allowed.",
    "check_in": "From 2:30 PM Guests are required to show a photo ID and credit card at check-in. You need to let the property know what time you'll be arriving in advance.",
    "children": "Child policies Children of all ages are welcome. Children 8 and above will be charged as adults at this property. To see correct prices and occupancy info, add the number and ages of children in your …",
    "check_out": "From 6:00 AM to 12:00 PM",
    "cancellation_and_prepayment": "Cancellation and prepayment policies vary according to accommodation type. Check what conditions apply to each option when making your selection."
  },
  "photo_links": [
    "https://cf.bstatic.com/xdata/images/hotel/max1024x768/44743773.jpg?k=9aacbb517b84d74e65d3be530ac478558d498308061eb85d3e51774cf70dd3ae&o="
  ],
  "review_word": "Very Good",
  "star_rating": 4,
  "booking_link": "https://www.booking.com/hotel/it/quirinale.html",
  "review_count": 5145,
  "review_score": 8.2,
  "property_name": "Hotel Quirinale",
  "property_type": "Hotel",
  "category_scores": {
    "Staff": 8.6,
    "Comfort": 8.7,
    "Location": 9.3,
    "Free Wifi": 8.3,
    "Facilities": 8.2,
    "Cleanliness": 8.6,
    "Value for money": 7.9
  },
  "facility_groups": [
    {
      "group": "General",
      "facilities": [
        "Shuttle service"
      ]
    }
  
…
```

### Get property reviews

Operation `get_property_reviews`, 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.

Get public guest reviews for a Booking.com property by its name and city or Booking.com link. Fields guests leave blank are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"newest"` | Review order. Example: newest. |
| `property` | string | yes | `"Hotel Artemide Rome"` | Property name with city, or Booking.com link. Example: Hotel Artemide Rome. |
| `max_results` | integer | no | `20` | Maximum reviews, up to 100. Example: 20. |
| `english_only` | boolean | no | `false` | Only English reviews. Example: false. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "property"
  ],
  "properties": {
    "sort": {
      "enum": [
        "newest",
        "most_relevant",
        "highest_score",
        "lowest_score"
      ],
      "type": "string",
      "default": "newest",
      "description": "Review order. Example: newest.",
      "examples": [
        "newest",
        "lowest_score",
        "highest_score"
      ]
    },
    "property": {
      "type": "string",
      "description": "Property name with city, or Booking.com link. Example: Hotel Artemide Rome.",
      "examples": [
        "Hotel Artemide Rome",
        "https://www.booking.com/hotel/it/artemide.html",
        "The Langham London"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum reviews, up to 100. Example: 20.",
      "x-fous-developer": true,
      "examples": [
        20,
        30,
        4
      ]
    },
    "english_only": {
      "type": "boolean",
      "default": false,
      "description": "Only English reviews. Example: false.",
      "examples": [
        false,
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "newest",
      "property": "Hotel Artemide Rome",
      "max_results": 20,
      "english_only": false
    },
    {
      "sort": "lowest_score",
      "property": "https://www.booking.com/hotel/it/artemide.html",
      "max_results": 30,
      "english_only": true
    },
    {
      "sort": "highest_score",
      "property": "The Langham London",
      "max_results": 4,
      "english_only": false
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `reviews` | array |  | Guest reviews. |
| `reviews[].liked` | string or null | `"Location, breakfast, staff, cleanliness, reception, rooftop area."` | Liked. |
| `reviews[].title` | string or null | `"Breakfast staff were so friendly and couldn’t do enough for us. Same for a couple of staff in the rooftop restaurant to` | Title. |
| `reviews[].disliked` | string or null | `"They over charged me for one night after I paid it in advance and had the audacity to tell me that I didn’t show up for` | Disliked. |
| `reviews[].page_link` | string or null | `"https://www.booking.com/hotel/it/artemide.html#tab-reviews"` | Page link. |
| `reviews[].room_type` | string or null | `"Comfort Twin Room"` | Room type. |
| `reviews[].review_date` | string or null | `"2026-09-28"` | Review date. |
| `reviews[].month_of_stay` | string or null | `"September 2026"` | Month of stay. |
| `reviews[].nights_stayed` | integer or null | `3` | Nights stayed. |
| `reviews[].property_reply` | string or null |  | Property reply. |
| `reviews[].traveller_type` | string or null | `"Solo traveler"` | Traveller type. |
| `reviews[].score_out_of_10` | number or null | `10` | Score out of 10. |
| `reviews[].reviewer_country` | string or null | `"Australia"` | Reviewer country. |
| `reviews[].reviewer_first_name` | string or null | `"Ken"` | Reviewer first name. |
| `review_count` | integer | `1685` | Total number of reviews. |
| `property_link` | string | `"https://www.booking.com/hotel/it/artemide.html"` | Booking.com property link. |
| `property_name` | string | `"Hotel Artemide"` | Property name. |
| `overall_score_out_of_10` | number or null | `9.2` | Overall score out of 10. |

**Example input**

```json
{
  "sort": "newest",
  "property": "Hotel Artemide Rome",
  "max_results": 20,
  "english_only": false
}
```

**Example output**

```json
{
  "reviews": [
    {
      "liked": null,
      "title": null,
      "disliked": null,
      "page_link": "https://www.booking.com/hotel/it/artemide.html#tab-reviews",
      "room_type": "Comfort Twin Room",
      "review_date": "2026-09-28",
      "month_of_stay": "September 2026",
      "nights_stayed": 3,
      "property_reply": null,
      "traveller_type": "Solo traveler",
      "score_out_of_10": 10,
      "reviewer_country": "Australia",
      "reviewer_first_name": "Ken"
    },
    {
      "liked": null,
      "title": null,
      "disliked": null,
      "page_link": "https://www.booking.com/hotel/it/artemide.html#tab-reviews",
      "room_type": "Deluxe Triple Room",
      "review_date": "2026-09-28",
      "month_of_stay": "September 2026",
      "nights_stayed": 6,
      "property_reply": null,
      "traveller_type": "Couple",
      "score_out_of_10": 9,
      "reviewer_country": "Bermuda",
      "reviewer_first_name": "Jutta"
    },
    {
      "liked": "Location, breakfast, staff, cleanliness, reception, rooftop area.",
      "title": "Breakfast staff were so friendly and couldn’t do enough for us. Same for a couple of staff in the rooftop restaurant too",
      "disliked": null,
      "page_link": "https://www.booking.com/hotel/it/artemide.html#tab-reviews",
      "room_type": "Comfort Double Room",
      "review_date": "2026-09-27",
      "month_of_stay": "September 2026",
      "nights_stayed": 6,
      "property_reply": null,
      "traveller_type": "Couple",
      "score_out_of_10": 9,
      "reviewer_country": "United Kingdom",
      "reviewer_first_name": "Kay"
    }
  ],
  "review_count": 1685,
  "property_link": "https://www.booking.com/hotel/it/artemide.html",
  "property_name": "Hotel Artemide",
  "overall_score_out_of_10": 9.2
}
```

### Search stays

Operation `search_stays`, 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.

Search Booking.com stays by destination and dates, with guest counts, price, review, cancellation, sorting and paging. Displayed prices generally exclude some taxes and fees; children are searched as age 8 when ages are not specified.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `page` | integer | no | `2` | Page of results, for example 2. |
| `sort` | string | no | `"price_low_to_high"` | Order of stays, for example price_low_to_high. |
| `rooms` | integer | no | `1` | Number of rooms, for example 1. |
| `adults` | integer | no |  | Number of adult guests, for example 2. |
| `check_in` | string | yes | `"2026-11-12"` | Arrival date, for example 2026-10-20. |
| `children` | integer | no | `1` | Number of children, for example 1. Children are searched as age 8. |
| `currency` | string | no | `"EUR"` | Three-letter price currency, for example USD. |
| `check_out` | string | yes | `"2026-11-15"` | Departure date, for example 2026-10-23. |
| `destination` | string | yes | `"New York"` | City, area or landmark, for example Paris. |
| `max_results` | integer | no | `4` | Most stays to return, for example 25. |
| `min_review_score` | number | no | `7` | Minimum guest review score out of 10, for example 8.5. |
| `max_price_per_night` | number | no | `250` | Maximum average nightly price in the chosen currency, for example 250. |
| `free_cancellation_only` | boolean | no | `true` | Only show offered stays marked free cancellation, for example true. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "destination",
    "check_in",
    "check_out"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Page of results, for example 2.",
      "x-fous-developer": true,
      "examples": [
        2
      ]
    },
    "sort": {
      "enum": [
        "recommended",
        "price_low_to_high",
        "review_score",
        "distance_from_centre"
      ],
      "type": "string",
      "default": "recommended",
      "description": "Order of stays, for example price_low_to_high.",
      "examples": [
        "price_low_to_high"
      ]
    },
    "rooms": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Number of rooms, for example 1.",
      "examples": [
        1
      ]
    },
    "adults": {
      "type": "integer",
      "default": 2,
      "minimum": 1,
      "description": "Number of adult guests, for example 2."
    },
    "check_in": {
      "type": "string",
      "format": "date",
      "description": "Arrival date, for example 2026-10-20.",
      "examples": [
        "2026-11-12",
        "2026-10-20",
        "2026-11-08"
      ]
    },
    "children": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Number of children, for example 1. Children are searched as age 8.",
      "examples": [
        1
      ]
    },
    "currency": {
      "type": "string",
      "default": "USD",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Three-letter price currency, for example USD.",
      "examples": [
        "EUR"
      ]
    },
    "check_out": {
      "type": "string",
      "format": "date",
      "description": "Departure date, for example 2026-10-23.",
      "examples": [
        "2026-11-15",
        "2026-10-23",
        "2026-11-10"
      ]
    },
    "destination": {
      "type": "string",
      "description": "City, area or landmark, for example Paris.",
      "examples": [
        "New York",
        "Paris",
        "London"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Most stays to return, for example 25.",
      "x-fous-developer": true,
      "examples": [
        4,
        3
      ]
    },
    "min_review_score": {
      "type": "number",
      "maximum": 10,
      "minimum": 1,
      "description": "Minimum guest review score out of 10, for example 8.5.",
      "examples": [
        7
      ]
    },
    "max_price_per_night": {
      "type": "number",
      "description": "Maximum average nightly price in the chosen currency, for example 250.",
      "exclusiveMinimum": 0,
      "examples": [
        250
      ]
    },
    "free_cancellation_only": {
      "type": "boolean",
      "default": false,
      "description": "Only show offered stays marked free cancellation, for example true.",
      "examples": [
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "price_low_to_high",
      "check_in": "2026-11-12",
      "check_out": "2026-11-15",
      "destination": "New York",
      "max_results": 4,
      "min_review_score": 7,
      "max_price_per_night": 250,
      "free_cancellation_only": true
    },
    {
      "check_in": "2026-10-20",
      "check_out": "2026-10-23",
      "destination": "Paris"
    },
    {
      "page": 2,
      "rooms": 1,
      "check_in": "2026-11-08",
      "children": 1,
      "currency": "EUR",
      "check_out": "2026-11-10",
      "destination": "London",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `stays` | array |  | Stays matching the search. |
| `stays[].area` | string or null | `"Chinatown, New York"` | Neighborhood or area. |
| `stays[].currency` | string or null | `"USD"` | Three-letter currency code. |
| `stays[].photo_url` | string or null | `"https://cf.bstatic.com/xdata/images/hotel/square600/487598001.webp?k=e8ed76a76345100195ca59fb22b48d54e957030d493a4cf22c` | First property photo link. |
| `stays[].score_word` | string or null | `"Good"` | Guest score label. |
| `stays[].booking_url` | string | `"https://www.booking.com/hotel/us/us-pacific.html?ss=New+York&checkin=2026-11-12&checkout=2026-11-15&group_adults=2&no_r` | Booking.com property link for these dates and guests. |
| `stays[].star_rating` | number or null | `1` | Property star rating when shown. |
| `stays[].total_price` | number or null | `357` | Price of the whole stay in the currency shown. |
| `stays[].review_count` | integer or null | `2335` | Number of guest reviews. |
| `stays[].review_score` | number or null | `7.2` | Guest score out of 10. |
| `stays[].room_offered` | string or null | `"Standard Double (No Window)"` | Name of the offered room or unit. |
| `stays[].property_name` | string | `"U.S. Pacific Hotel"` | Name of the stay. |
| `stays[].property_type` | string or null | `"Hostel"` | Type of stay. |
| `stays[].price_per_night` | number or null | `119` | Average price per night in the currency shown. |
| `stays[].free_cancellation` | boolean | `true` | Whether the offered stay displays free cancellation. |
| `stays[].breakfast_included` | boolean | `false` | Whether breakfast is included with the offered stay. |
| `stays[].distance_from_centre` | string or null | `"3.5 miles from downtown"` | Distance from the city center, as displayed. |

**Example input**

```json
{
  "sort": "price_low_to_high",
  "check_in": "2026-11-12",
  "check_out": "2026-11-15",
  "destination": "New York",
  "max_results": 4,
  "min_review_score": 7,
  "max_price_per_night": 250,
  "free_cancellation_only": true
}
```

**Example output**

```json
{
  "stays": [
    {
      "area": "Chinatown, New York",
      "currency": "USD",
      "photo_url": "https://cf.bstatic.com/xdata/images/hotel/square600/487598001.webp?k=e8ed76a76345100195ca59fb22b48d54e957030d493a4cf22ceed135fd9ba059&o=",
      "score_word": "Good",
      "booking_url": "https://www.booking.com/hotel/us/us-pacific.html?ss=New+York&checkin=2026-11-12&checkout=2026-11-15&group_adults=2&no_rooms=1&group_children=0&selected_currency=USD&order=price&nflt=fc%3D2%3Breview_sc…",
      "star_rating": 1,
      "total_price": 357,
      "review_count": 2335,
      "review_score": 7.2,
      "room_offered": "Standard Double (No Window)",
      "property_name": "U.S. Pacific Hotel",
      "property_type": "Hostel",
      "price_per_night": 119,
      "free_cancellation": true,
      "breakfast_included": false,
      "distance_from_centre": "3.5 miles from downtown"
    },
    {
      "area": "East Harlem, New York",
      "currency": "USD",
      "photo_url": "https://cf.bstatic.com/xdata/images/hotel/square600/506033189.webp?k=2aa83e561dbfec138a765bf8b8af5bb9788ed59252419ca78fdb7b14d3a07a31&o=",
      "score_word": "Very Good",
      "booking_url": "https://www.booking.com/hotel/us/the-neighborhood-district.html?ss=New+York&checkin=2026-11-12&checkout=2026-11-15&group_adults=2&no_rooms=1&group_children=0&selected_currency=USD&order=price&nflt=fc%…",
      "star_rating": 1,
      "total_price": 380.88,
      "review_count": 432,
      "review_score": 8.2,
      "room_offered": "Mixed Dormitory Room",
      "property_name": "East Harlem Hostel",
      "property_type": "Hostel",
      "price_per_night": 126.96,
      "free_cancellation": true,
      "breakfast_included": false,
      "distance_from_centre": "2.9 miles from downtown"
    }
  ]
}
```

## 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": "@booking-com",
  "visibility": "public",
  "operation": "get_property",
  "version": 1,
  "input": {
    "adults": 2,
    "check_in": "2026-11-10",
    "currency": "USD",
    "property": "https://www.booking.com/hotel/it/quirinale.html",
    "check_out": "2026-11-12"
  },
  "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\": \"@booking-com\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_property\",\n  \"version\": 1,\n  \"input\": {\n    \"adults\": 2,\n    \"check_in\": \"2026-11-10\",\n    \"currency\": \"USD\",\n    \"property\": \"https://www.booking.com/hotel/it/quirinale.html\",\n    \"check_out\": \"2026-11-12\"\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": "@booking-com",
  "visibility": "public",
  "operation": "get_property",
  "version": 1,
  "input": {
    "adults": 2,
    "check_in": "2026-11-10",
    "currency": "USD",
    "property": "https://www.booking.com/hotel/it/quirinale.html",
    "check_out": "2026-11-12"
  },
  "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/booking-com`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_property`: Get property. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_property_reviews`: Get property reviews. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_stays`: Search stays. 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-booking-com https://api.fous.com/mcp/tools/booking-com --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 stays by nightly price, review score, and cancellation options
- Find properties for a destination and travel dates
- Review room prices, facilities, and house rules
- Analyze guest feedback by traveller type and stay date

## 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 Booking.com 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 Booking.com account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from booking.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 stays are available for a destination and dates?

Use Search stays with a destination, check-in date, and check-out date.

### What rooms and facilities does a property offer?

Use Get property with the property name and city or its Booking.com link.

### What have guests said about a property?

Use Get property reviews with the property name and city or its Booking.com link.

## Related

- [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.
- [Airbnb API](https://fous.com/tools/airbnb.md): Airbnb returns public stays, listing details, dated trip prices, and night availability, which depend on dates and may be limited, unavailable, or change.
- [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.
- [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.
- [Hostelworld API](https://fous.com/tools/hostelworld.md): Hostelworld accommodation search and booking
- [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.
- [Kayak API](https://fous.com/tools/kayak.md): Kayak compares flight and hotel prices across booking sites and current rental car offers; hotel rates assume two adults per room and cover public location pages, while prices and availability can change at booking.
- [All Travel tools](https://fous.com/tools/category/travel)
