Last updated

Filtering and sorting accommodation results v3.2

Learn how to filter and sort accommodations when using the accommodations/search endpoint. This guide explains the supported search filters, their expected values, and how to control the sorting of your search results.


Overview

By default, accommodations/search returns the cheapest available product for each accommodation matching your search criteria.

Important: When you apply location filters (e.g., country, region, city), results are sorted by Booking.com popularity (top_picks) in descending order, meaning higher-ranked listings appear first. You can customise your results using:

  • Filters – narrow down accommodations based on facilities, amenities, payment options, price, rating, and more.
  • Sorting – control the order in which results are returned.

Filters

Filters are specified under the filters object in the request body. Below is a complete reference for all available filters in v3.2.

FilterTypeDescription
24_hour_receptionbooleanOnly include accommodations with 24/7 front desk reception. Set true to filter accordingly.
accommodation_facilitiesarray of integersFilter by property facilities (e.g., Parking, Restaurant).
accommodation_typesarray of integersFilter by property type (e.g., Apartment, Hotel, Hostel).
brandsarray of integersFilter by brand (e.g., Radisson Blu, Westin).
cancellation_typestringFilter by cancellation type. Options: free_cancellation or non_refundable.
dormitoriesstringInclude or exclude dormitory rooms/beds. Options: include (default), exclude, only.
meal_planstringFilter by meal plan. Options: all_inclusive, breakfast_included, full_board, half_board.
paymentobjectPayment filters:
  • credit_card_required (boolean) – only show accommodations requiring credit cards.
  • timing (string) – filter by payment timing: pay_at_the_property, pay_online.
priceobjectFilter by price per night. Requires currency parameter.
  • minimum (integer) – min price.
  • maximum (integer) – max price.
ratingobjectFilter by property rating:
  • minimum_review_score (1–10)
  • stars (array of integers, 1–5)
room_facilitiesarray of integersFilter by room facilities (e.g., TV, Air Conditioning).
sustainability_certificationbooleanFilter for properties with sustainability certification.
  • Set true to include only certified accommodations.
travel_proudbooleanFilter for LGBTQ+ friendly properties (Proud Certified).
  • Set true to include only Proud Certified accommodations.

Filters can be combined. Only accommodations matching all criteria will be returned.

Sorting

The sort object controls the order of results. You can specify the sorting field and direction.

ParameterTypeDescription
bystringField to sort by. Options: distance, price, review_score, stars.

Use distance only if coordinates are provided.

directionstringSort direction. Options: ascending, descending.

Example sorting usage:

"sort": {
  "by": "price",
  "direction": "ascending"
}

This will return the lowest-priced accommodations first.


Practical filtering examples

Search by facilities and rating

This filter is based on the availability of facilities in the accommodation.

Some accommodation_facilitiesare:

Wi-FiSearch for properties that offer free or paid Wi-Fi.
ParkingFilter for accommodations with available parking facilities.
PoolAllows users to search for properties that have swimming pools.
Air conditioningFilter based on whether the rooms have air conditioning.
Pet-FriendlyLocate properties that allow pets.
Kitchen facilitiesHelps to find accommodations with kitchen or kitchenette options.
Fitness centerSearch for accommodations with on-site gym facilities.
AccessibilityFilters that allow searches for properties with amenities that cater to guests with disabilities.

→ Get facility IDs from accommodations/constants.

Example of search request filtering by:

  • Accommodation facilities: parking (2), and restaurant (3).
  • Room facilities: air-conditioning (11)
"filters": {
  "accommodation_facilities": [2, 3, 11],
  "rating": {
    "minimum_review_score": 8,
    "stars": [4,5]
  }
}
  • This request returns properties with specified facilities, minimum review score of 8, and 4- or 5-star rating.

Search with payment options

You can restrict results to include properties that support only pay at the property (pay_at_the_property) and/or online payments (pay_online).

You can apply the payment timing filter in accommodations/search, accommodations/availability and accommodations/details requests.

Example of search request for pay at the property timing:

"filters": {
  "payment": {
    "credit_card_required": true,
    "timing": "pay_at_the_property"
  }
}

This example returns accommodations that require a credit card and allow pay-at-property.

Example in accommodations/details request:

{
  "accommodations": [
      10507360
  ],
  "extras": [
    "payment"
  ],
  "payment": {
    "timing": "pay_online"
  }
}

See the Payment timings section for more details about online and offline payments.

Search by minimum or maximum price

Search properties based on their price range using:

Filters:
minimumLower limit price per night. Only accommodations costing more than this specified amount will be returned.
maximumSets an upper limit for the price per night, ensuring that results do not exceed a particular budget.
  • You can specify both minimum and maximum prices together to define a specific range, such as 100 Eur to 200 Eur per night.
  • If specified, will return only results where the price per night falls in the specified range (inclusive).

Example for accommodation in Amsterdam that cost between 100 Eur and 200 Eur per night, returning the prices in EUR.

{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "currency": "EUR",
  "filters": {
    "price": {
      "maximum": "200",
      "minimum": "100"
    }
  }
  },
  "checkin": "2025-11-10",
  "checkout": "2025-11-15",
  "city": -2140479,
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  }
}
  
Note

Always include currency when using price filters.

Search by sustainability and LGBTQ+ friendly properties

"filters": {
  "sustainability_certification": true,
  "travel_proud": true
}
  • This request returns only accommodations that are both Proud Certified and sustainability-certified.

Search by accommodation brand

You can search for well-known accommodation chains like "Marriott," "Hilton," "Radisson," or others.

→ Use the accommodations/chains endpoint with empty body to get the full list of brand ids. Select the one you need for your search request.

  • In this example, "19" represents the "Radisson Hotel Group" brand.
  • You can customise this filter to include multiple brands if needed (e.g., "19", "22").
{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "checkin": "2026-05-09",
  "checkout": "2026-05-12",
  "city": -2140479,
  "extras": ["extra_charges", "products"],
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  },
  "filters": {
    "brands": [19]
  }
}
Note

Brand filters cannot be combined with specific accommodation IDs but can be used alongside city filters.

Search for 24h reception accommodation

To retrieve accommodations offering 24h reception service in Amsterdam, you can use the following filter on your search request:

{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "checkin": "2026-05-09",
  "checkout": "2026-05-12",
  "city": -2140479,
  "extras": ["extra_charges", "products"],
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  },
  "filters": {
    "24_hour_reception": true
  }
}

Search by distance

You can restrict your search based on distance.

Using coordinates

Coordinates parameter helps filtering based on a given latitude, longitude and radius, enabling searches for properties near a particular spot on the map.

You can get the coordinates by using:

Example:

  • This query filters properties within a 5 km radius of the provided latitude and longitude (Amsterdam in this case).
{
  "coordinates": {
    "latitude": 52.3676,
    "longitude": 4.9041,
    "radius": 5
  },
  "booker": {
    "platform": "desktop",
    "country": "nl"
  },
  "currency": "EUR",
  "checkin": "2025-03-09",
  "checkout": "2025-03-10",
  "guests": {
    "number_of_rooms": 1,
    "number_of_adults": 2
  }
}

Adjust the latitude, longitude, and radius as needed to search for different areas or distances​.

Using landmarks

Users can filter accommodations by specifying a distance range from popular landmarks (e.g., airports, museums, etc.)

  1. Use the common/locations/landmarks endpoint to get the list of landmarks (and their ids) in a selected city.

Example for Paris (-1456928):

Request:

{
  "city": -1456928,
  "languages": [
    "en-gb"
  ]
}

Response:

{
  "request_id": "01jn0p83bec2cyrs2mbn9wwqng",
  "data": [
    {
      "id": 735,
      "name": {
        "en-gb": "Eiffel Tower"
      },
      "coordinates": {
        "latitude": 48.8586,
        "longitude": 2.29398
      }
    },
    {
      "id": 935,
      "name": {
        "en-gb": "Louvre Museum"
      },
      "coordinates": {
        "latitude": 48.86086,
        "longitude": 2.3388
      }
    },
  1. Include landmarkand the desired id in your search request. In this example: 735 for Eiffel Tower.
{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "checkin": "2025-10-10",
  "checkout": "2025-10-15",
  "landmark": 735,
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  }
}

Alternatively you can also use specific coordinates.

When including landmark id, you do not need the city id.

Search by location

You can filter by geographic locations using parameters like:

FieldsDescriptionGet ids using these endpoints
city               To filter by city.location/city
countryTo filter by country.location/country
regionTo restrict the search to a specific region inside a country. Example: "725" for Andalusia in "es".location/region
airportTo filter by a specific airport.location/airports

→ Retrieve the needed IDs from common/location.

City and country

These filters can be very handy when looking for accommodations that have been recently modified.

Apply them in your /accommodations/details/changes request to retrieve the list of accommodations that have been modified in the last 24h in those countries or cities of your interest.

→ Call the /accommodations/details/changes endpoint using different countries.

Example with The Netherlands, Spain and Italy:

{
  "last_change": "2025-09-29T17:00:00+00:00",
  "filters": {
    "countries": [
      "nl",
      "es",
      "in"
    ]
  }
}

Note that a list of max 100 countries or cities is supported.

Key notes

  • Price filtering requires a currency parameter.
  • Sorting by distance requires coordinates (latitude, longitude, radius).
  • You can combine filters and sorting to get highly tailored search results.
  • Results are paginated using rows (max results per page) and page (pagination token). See the Pagination guide