---
title: "Hotels Search Engine Results Page"
method: POST
path: "/api/b2b/v3/search/serp/hotels"
tags: ["search"]
---

# Hotels Search Engine Results Page

`POST /api/b2b/v3/search/serp/hotels`

Search Engine Results Page (SERP) - this is for the preliminary search of a hotel with available accommodation that meets the given search conditions.
It is not recommended to let the users choose the rates from this method (a full match with results from the Hotelpage request is not expected).

## Request body

- HotelsSerpRequest
  - `checkin` string
  - `checkout` string
  - `currency` string
  - `filter` BaseFilter
    - `kind` string[]
    - `meal_type` string[]
    - `price_from` number
    - `price_to` number
    - `star_rating` integer[]
  - `guests` BaseGuestsGroup[]
    - `adults` integer
    - `children` integer[]
  - `hids` integer[]
  - `ids` string[]
  - `language` string
  - `residency` string
  - `timeout` number
  - `upsells` BaseUpsells
    - `early_checkin` BaseECLC
      - `time` string
    - `late_checkout` BaseECLC
      - `time` string
    - `multiple_eclc` boolean
    - `only_eclc` boolean

## Response `200`

OK

- object
  - `data` B2bResult
    - `hotels` B2bHotel[]
      - `bar_price_data` B2bBarPriceData
        - `hotel` B2bHotelBarPriceData
          - `currency` string
          - `price` string
        - `room_groups` B2bRoomGroupsBarPriceData[]
          - `currency` string
          - `price` string
          - `rg_ext` BaseRgExt
            - `balcony` integer
            - `bathroom` integer
            - `bedding` integer
            - `bedrooms` integer
            - `capacity` integer
            - `class` integer
            - `club` integer
            - `family` integer
            - `floor` integer
            - `quality` integer
            - `sex` integer
            - `view` integer
      - `hid` integer
      - `id` string
      - `rates` B2bRate[]
        - `allotment` integer
        - `amenities_data` string[]
        - `any_residency` boolean
        - `bar_rate_price_data` B2bBarRatePriceData
          - `amount` string
          - `currency_code` string
        - `book_hash` string
        - `daily_prices` string[]
        - `deposit` BaseDeposit
          - `amount` string
          - `currency_code` string
          - `is_refundable` boolean
        - `is_package` boolean
        - `legal_info` BaseLegalInfo
          - `hotel` BaseLegalInfoHotel
            - `address` string
            - `name` string
            - `state_registration_number` string
            - `taxpayer_number` string
            - `work_time` string
          - `provider` BaseLegalInfoProvider
            - `address` string
            - `name` string
            - `state_registration_number` string
            - `taxpayer_number` string
        - `match_hash` string
        - `meal` string
        - `meal_data` BaseMealData
          - `has_breakfast` boolean
          - `no_child_meal` boolean
          - `value` string
        - `no_show` BaseNoShow
          - `amount` string
          - `currency_code` string
          - `from_time` string
        - `payment_options` B2bPaymentOptions
          - `payment_types` B2bPaymentType[]
            - `amount` string
            - `by` string
            - `cancellation_penalties` B2bCancellationPenalty
              - …
            - `commission_info` B2bCommissionInfo
              - …
            - `currency_code` string
            - `is_need_credit_card_data` boolean
            - `is_need_cvc` boolean
            - `perks` B2bPerks
              - …
            - `recommended_price` B2bRecommendedPrice
              - …
            - `show_amount` string
            - `show_currency_code` string
            - `tax_data` BaseTaxData
              - …
            - `type` string
            - `vat_data` B2bVATData
              - …
        - `prepayment` B2bPrepayment
          - `groups` B2bPrepaymentGroup[]
            - `policies` B2bPrepaymentPolicy[]
              - …
          - `type` string
        - `rg_ext` BaseRgExt
          - `balcony` integer
          - `bathroom` integer
          - `bedding` integer
          - `bedrooms` integer
          - `capacity` integer
          - `class` integer
          - `club` integer
          - `family` integer
          - `floor` integer
          - `quality` integer
          - `sex` integer
          - `view` integer
        - `room_data_trans` BaseRoomDataTrans
          - `bathroom` string
          - `bedding_type` string
          - `beds` BaseBedGroup[]
            - `bed` string
            - `count` integer
          - `main_name` string
          - `main_room_type` string
          - `misc_room_type` string
        - `room_name` string
        - `room_name_info` BaseRoomNameInfo
          - `original_rate_name` string
        - `search_hash` string
        - `sell_price_limits` B2bSellPriceLimits
          - `max_price` string
          - `min_price` string
        - `serp_filters` string[]
    - `total_hotels` integer
  - `debug` V3Debug
    - `api_endpoint` V3DebugEndpoint
      - `endpoint` string
      - `is_active` boolean
      - `is_limited` boolean
      - `remaining` integer
      - `requests_number` integer
      - `reset` string
      - `seconds_number` integer
    - `api_key_id` integer
    - `key_id` integer
    - `method` string
    - `real_ip` string
    - `request` integer[]
    - `request_id` string
    - `utcnow` string
    - `validation_error` string
  - `error` string
  - `status` string

---

[API](https://skmtc.net/worldota/apis/etg-api-v3.md) · [All operations](https://skmtc.net/worldota/apis/etg-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/worldota/etg-api-v3/revisions/eb86c2c78ad5/schema)
