---
title: "Returns offers with rates and availabilities for the specified range."
method: GET
path: "/booking/v0-nsfw/offer-index-bulk"
tags: ["Offer"]
---

# Returns offers with rates and availabilities for the specified range.

`GET /booking/v0-nsfw/offer-index-bulk`

## Request

- Base URL: `https://api.apaleo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.apaleo.com/booking/v0-nsfw/offer-index-bulk`
- Auth: OAuth 2
  - Implicit: `https://identity.apaleo.com/connect/authorize`
  - Scopes: `offer-index.read`, `offers.read`, `admin`

Calculates and returns offers per time slice for multiple rate plans, arrival and departure date.
The rate plans must belong to the same unit group and have the same time slice definition.
Each time slice is priced as its own arrival, independent of the requested range.
Prices are for adults only.<br>You must have at least one of these scopes: 'offer-index.read, offers.read'.<br>For fine-grained clients, you must have this permission: 'core.offers.read'.

## Query parameters

- `ratePlanIds` string[], required
- `from` string, required
- `to` string, required
- `channelCode` 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu' | 'Gimsi', required
- `pageNumber` integer
- `pageSize` integer

## Response `200`

Success.

- BulkTimeSliceListModel
  - `ratePlans` RatePlanTimeSliceListModel[], required: List of time slices per rate plan
    - `ratePlanId` string, required: The id of the rate plan
    - `timeSlices` TimeSliceItemModel[], required: List of time slices
      - `from` string, date-time, required: Date and time the time slice begins<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
      - `to` string, date-time, required: Date and time the time slice ends<br />A date and time in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
      - `offers` TimeSliceOfferItemModel[], nullable: List of offers for this time slice
        - `unitGroup` EmbeddedUnitGroupModel, required
          - `id` string, required: The unit group id
          - `code` string, nullable: The code for the unit group that can be shown in reports and table views
          - `name` string, nullable: The name for the unit group
          - `description` string, nullable: The description for the unit group
          - `type` 'BedRoom' | 'MeetingRoom' | 'EventSpace' | 'ParkingLot' | 'Other', nullable: The unit group type
        - `minGuaranteeType` 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company' | 'Ota', nullable: The minimum guarantee type for the offer
        - `minAdvance` PeriodModel
          - `hours` integer, nullable: The number of hours within the period
          - `days` integer, nullable: The number of days within the period
          - `months` integer, nullable: The number of months within the period
        - `maxAdvance` PeriodModel
          - `hours` integer, nullable: The number of hours within the period
          - `days` integer, nullable: The number of days within the period
          - `months` integer, nullable: The number of months within the period
        - `available` integer, required: The number of available units for the offer
        - `availableUnits` integer, required: The number of available units for the offer considering overbookings
        - `restrictions` RateRestrictionsModel
          - `minLengthOfStay` integer, nullable: The minimum length of stay in order to book the rate. If at least this number of time slices are covered by the stay duration the rate will be offered.
          - `maxLengthOfStay` integer, nullable: The maximum length of stay in order to book the rate. If not more than this number of time slices are covered by the stay duration the rate will be offered.
          - `closed` boolean, required: Whether the rate can be booked for a stay-through reservation
          - `closedOnArrival` boolean, required: Whether the rate can be booked on the reservation's arrival date
          - `closedOnDeparture` boolean, required: Whether the rate can be booked on the reservation's departure date
        - `prices` PerOccupancyPriceItemModel[], nullable: The prices for this offer
          - `adults` integer, required: Number of adults
          - `price` PriceModel, required
            - `grossAmount` number, double, required: Price including all included services and VAT - <b>DEPRECATED: This field will be removed soon, use BeforeTax + Taxes.Tax instead</b>
            - `beforeTax` number, double, required: Price including all included services without VAT or any other taxes like city tax
            - `afterTax` number, double, required: Price including all included services, VAT and any other taxes like city tax
            - `taxes` TaxesModel, required
              - …
            - `currency` string, required: The currency for all prices and tax details

## Other responses

- `204`: There are no rates for the specified parameters.
- `400`: Bad request.
- `401`: You are unauthorized.
- `403`: Forbidden.
- `404`: The Request-URI could not be found.
- `422`: Validation errors in the request body or query params.
- `499`: Client closed request.
- `500`: An unexpected error occurred.
- `503`: The server is currently unavailable. Please try later.

---

[API](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work.md) - [All operations](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work/llms.txt) - [OpenAPI document](https://skmtc.dev/apaleo/apis/apaleo-booking-api-not-safe-for-work/revisions/a1b6a2f6b879?raw)
