# Booking.com Search API

> Search Booking.com properties by destination and dates, with property name, price, rating, review score, address and photos.

Source: https://www.sandbase.ai/apis/booking/search
API reference: https://www.sandbase.ai/apis/booking/search#api

## Facts

- Provider: Booking.com
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/booking/search`
- Price: $0.01 per call
- Capabilities: api, booking, travel, lodging
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/booking/search` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `q` | string | yes |  |
| `hl` | string | no |  |
| `currency` | string | no |  |
| `check_in_date` | string | no |  |
| `check_out_date` | string | no |  |
| `flex_window` | string | no |  |
| `adults` | string | no |  |
| `children` | string | no |  |
| `children_ages` | string | no |  |
| `rooms` | string | no |  |
| `sort_by` | string | no |  |
| `min_price` | string | no |  |
| `max_price` | string | no |  |
| `hotel_class` | string | no |  |
| `rating` | string | no |  |
| `free_cancellation` | string | no |  |
| `property_types` | string | no |  |
| `nflt` | string | no |  |
| `offset` | string | no |  |
| `limit` | string | no |  |
| `session_token` | string | no |  |
| `device` | string | no |  |
| `json_restrictor` | string | no |  |

## FAQ

### How do I use the Booking.com Search API?

Send a POST request to https://api.sandbase.ai/v1/api/booking/search with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the Booking.com Search API cost?

$0.01 per call, billed from your SandBase balance. You are only charged for calls you make; there is no subscription.

### What parameters does the Booking.com Search API accept?

Required: q (string). Optional: hl (string), currency (string), check_in_date (string), check_out_date (string), flex_window (string) and adults (string) and 16 more. The Parameters table and the Playground on this page list every field.

### What does the Booking.com Search API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a Booking.com developer account or API key?

No. Booking.com Search runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Booking.com API access separately.

## README

### Booking.com Search

Search Booking.com properties by destination and dates, with property name, price, rating, review score, address and photos.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/api/booking/search" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "Austin"}'
```

The result is returned in `outputs[0].data` as structured JSON.

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `q` | string | Yes | Parameter defines the destination to search for: a city, a region, a district, a landmark, or an airport (e.g., `Paris`, `Tuscany`, `Manhattan`, or `Eiffel Tower`). Booking.com doesn't return results for most street addresses. |
| `hl` | string | No | Parameter defines the language to use for the Booking.com search (e.g., `en-us` (default) for English (US), `fr` for French, or `pt-br` for Portuguese (Brazil)). Head to the Booking.com languages page for a full list of supported languages. |
| `currency` | string | No | Parameter defines the currency of the returned prices. It defaults to `hotel_currency`, the currency of each property (e.g., `EUR` in Paris), returned in `currency` of each property. Head to the Booking.com currencies page for a full list o |
| `check_in_date` | string | No | Parameter defines the check-in date. The format is **YYYY-MM-DD** (e.g., `2026-12-12`). It must be used together with `check_out_date`. When dates aren't set, Booking.com returns properties without prices. |
| `check_out_date` | string | No | Parameter defines the check-out date. The format is **YYYY-MM-DD** (e.g., `2026-12-15`). It must be used together with `check_in_date`, and be up to 90 nights later than it. |
| `flex_window` | string | No | Parameter defines how many days the check-in and check-out dates can move, earlier or later, for the best price of each property. Each property then has the dates of its price in `check_in_date` and `check_out_date`. It must be used togethe |
| `adults` | string | No | Parameter defines the number of adults, from `1` to `30`. It defaults to `2`. |
| `children` | string | No | Parameter defines the number of children, from `0` (default) to `10`. Their ages must be set with `children_ages`. |
| `children_ages` | string | No | Parameter defines the age of each child at check-out, from `0` to `17`. It's a comma-separated list of ages (e.g., `5` for one child, or `5,9` for two children). When `children` isn't set, it's the number of ages. |
| `rooms` | string | No | Parameter defines the number of rooms, from `1` (default) to `30`. It can't be greater than the number of `adults`. |
| `sort_by` | string | No | Parameter defines the sorting of the results. It defaults to `popularity` (Our top picks). Available options: `popularity` - Our top picks `upsort_bh` - Homes & apartments first `price` - Price (lowest first) `price_from_high_to_low` - Pric |
| `min_price` | string | No | Parameter defines the minimum price per night, in the currency of the results (e.g., `100`). It must be used together with a `currency` code. |
| `max_price` | string | No | Parameter defines the maximum price per night, in the currency of the results (e.g., `300`). It must be used together with a `currency` code. |
| `hotel_class` | string | No | Parameter defines the property ratings to show: stars for hotels, or Booking.com's own rating for homes and apartments. It's a comma-separated list of ratings from `1` to `5` (e.g., `4,5` for 4 and 5-star properties). |
| `rating` | string | No | Parameter defines the minimum review score of the properties. Available options: `9` - Wonderful: 9+ `8` - Very Good: 8+ `7` - Good: 7+ `6` - Pleasant: 6+ |
| `free_cancellation` | string | No | Parameter defines whether to only show properties with free cancellation. It can be set to `true` or `false` (default). |
| `property_types` | string | No | Parameter defines the property types to show. It's a comma-separated list of property type IDs (e.g., `204` for hotels, or `201,220` for apartments and vacation homes). Head to the Booking.com property types page for a full list of supporte |
| `nflt` | string | No | Parameter defines any other Booking.com filters, like amenities, meals, districts, brands, or distance from the center. It's the value of the `nflt` parameter of Booking.com search URLs: a semicolon-separated list of filters (e.g., `hotelfa |
| `offset` | string | No | Parameter defines the result offset. It skips the given number of results. It's used for pagination. (e.g., `0` (default) is the first page of results, `25` is the 2nd page of results with the default `limit`, etc.). It can be up to `1000`: |
| `limit` | string | No | Parameter defines the maximum number of results to return, from `1` to `100`. It defaults to `25`, like on Booking.com. Booking.com sometimes returns a few more properties: sponsored ones, or the searched property. |
| `session_token` | string | No | Parameter defines the token that keeps the same Booking.com visitor between searches. Booking.com ranks properties differently for each visitor, so without it, the next pages can repeat properties of the previous ones. It's returned in `the |
| `device` | string | No | Parameter defines the device to use to get the results. It can be set to `desktop` (default) to use a regular browser, `tablet` to use a tablet browser (currently using iPads), or `mobile` to use a mobile browser. |
| `json_restrictor` | string | No | Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details. |

#### Pricing

$0.010 per successful call. Failed calls are not charged.
