> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rovemiles.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve rates for hotels

> Returns detailed rate information for hotels, including multiple room options and rates. All prices are in Rove Miles. Use this endpoint to get comprehensive pricing options after selecting hotels from the listing.



## OpenAPI

````yaml https://api.staging.rovemiles.com/functions/v1/openapi post /hotels/offers
openapi: 3.0.3
info:
  title: Rove Miles API
  version: 0.1.0
  description: Data Utils, Flights, Hotels & Miles endpoints.
servers:
  - url: https://api.staging.rovemiles.com/functions/v1
security:
  - bearerAuth: []
tags:
  - name: Data
    description: Operations related to reference data like airports and places
  - name: Flights
    description: Operations related to flight search and booking
  - name: Hotels
    description: Operations related to hotel search and booking
  - name: Miles
    description: Operations related to miles and points management
  - name: Deals
    description: Operations related to special offers and promotions for flights and hotels
paths:
  /hotels/offers:
    post:
      tags:
        - Hotels
      summary: Retrieve rates for hotels
      description: >-
        Returns detailed rate information for hotels, including multiple room
        options and rates. All prices are in Rove Miles. Use this endpoint to
        get comprehensive pricing options after selecting hotels from the
        listing.
      operationId: getHotelRates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - hotelIds
                - checkin
                - checkout
                - occupancies
              properties:
                hotelIds:
                  type: array
                  description: >-
                    Array of hotel IDs to get rates for. These IDs come from the
                    /hotels/list endpoint.
                  items:
                    type: string
                  minItems: 1
                  maxItems: 200
                  example:
                    - hotel123
                    - hotel456
                    - hotel789
                checkin:
                  type: string
                  format: date
                  description: Check-in date (YYYY-MM-DD)
                  example: '2023-12-15'
                checkout:
                  type: string
                  format: date
                  description: Check-out date (YYYY-MM-DD)
                  example: '2023-12-20'
                occupancies:
                  type: array
                  description: Occupancy details for each room
                  items:
                    type: object
                    required:
                      - adults
                    properties:
                      adults:
                        type: integer
                        description: Number of adults in the room
                        minimum: 1
                        maximum: 9
                      children:
                        type: array
                        description: Ages of children in the room
                        items:
                          type: integer
                          minimum: 0
                          maximum: 17
                  example:
                    - adults: 2
                      children:
                        - 5
                        - 9
                guestNationality:
                  type: string
                  description: Guest nationality in ISO 2-letter country code format
                  pattern: ^[A-Z]{2}$
                  example: US
                maxRatesPerHotel:
                  type: integer
                  description: Maximum number of rate options to return per hotel
                  minimum: 1
                  maximum: 100
                  default: 5
                refundableRatesOnly:
                  type: boolean
                  description: If true, only refundable rates will be included
                  default: false
      responses:
        '200':
          description: Successfully retrieved hotel rates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelOfferList'
        '204':
          description: No Content - No rates available for the requested hotels
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    HotelOfferList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/HotelOffer'
        guestLevel:
          type: integer
          description: The loyalty level of the guest, affecting pricing and benefits
        sandbox:
          type: boolean
          description: Indicates if the response is from a sandbox/test environment
        weather:
          type: array
          items:
            $ref: '#/components/schemas/Weather'
          description: Weather forecast data for the destination
    HotelOffer:
      type: object
      properties:
        hotelId:
          type: string
          description: Unique identifier of the hotel
        roomTypes:
          type: array
          items:
            $ref: '#/components/schemas/RoomType'
          description: Available room types with rates
    Weather:
      type: object
      properties:
        dailyWeather:
          type: object
          properties:
            date:
              type: string
              format: date
              description: Date of the weather forecast
            units:
              type: string
              description: Units of measurement (e.g., 'metric')
            cloud_cover:
              type: object
              properties:
                afternoon:
                  type: number
                  format: float
                  description: Percentage of cloud coverage in the afternoon
            humidity:
              type: object
              properties:
                afternoon:
                  type: number
                  format: float
                  description: Percentage of humidity in the afternoon
            precipitation:
              type: object
              properties:
                total:
                  type: number
                  format: float
                  description: Total precipitation amount
            temperature:
              type: object
              properties:
                min:
                  type: number
                  format: float
                  description: Minimum temperature
                max:
                  type: number
                  format: float
                  description: Maximum temperature
                afternoon:
                  type: number
                  format: float
                  description: Afternoon temperature
                night:
                  type: number
                  format: float
                  description: Night temperature
                evening:
                  type: number
                  format: float
                  description: Evening temperature
                morning:
                  type: number
                  format: float
                  description: Morning temperature
            pressure:
              type: object
              properties:
                afternoon:
                  type: number
                  format: float
                  description: Atmospheric pressure in the afternoon
            wind:
              type: object
              properties:
                max:
                  type: object
                  properties:
                    speed:
                      type: number
                      format: float
                      description: Maximum wind speed
                    direction:
                      type: number
                      format: float
                      description: Wind direction in degrees
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
    RoomType:
      type: object
      properties:
        roomTypeId:
          type: string
          description: Unique identifier for the room type
        offerId:
          type: string
          description: Unique identifier for this specific offer
        supplier:
          type: string
          description: Name of the inventory supplier
        supplierId:
          type: integer
          description: ID of the inventory supplier
        rates:
          type: array
          items:
            $ref: '#/components/schemas/Rate'
          description: Available rate options for this room type
        offerRetailRate:
          type: object
          properties:
            amount:
              type: number
              format: float
              description: Total price in the specified currency, in miles for Rove
            currency:
              type: string
              description: Currency code (will be MILES for Rove)
        suggestedSellingPrice:
          type: object
          properties:
            amount:
              type: number
              format: float
            currency:
              type: string
            source:
              type: string
              description: Source of the suggested price (e.g., 'booking.com')
        offerInitialPrice:
          type: object
          properties:
            amount:
              type: number
              format: float
            currency:
              type: string
        priceType:
          type: string
          enum:
            - commission
            - net
          description: Pricing model used for this offer
        rateType:
          type: string
          enum:
            - standard
            - promotional
            - package
          description: Type of rate
    Rate:
      type: object
      properties:
        rateId:
          type: string
          description: Unique identifier for the rate
        occupancyNumber:
          type: integer
          description: The maximum occupancy for this rate
        name:
          type: string
          description: Name of the room type
        maxOccupancy:
          type: integer
          description: Maximum number of guests allowed
        adultCount:
          type: integer
          description: Number of adults this rate is configured for
        childCount:
          type: integer
          description: Number of children this rate is configured for
        boardType:
          type: string
          description: Board type code (e.g., 'RO', 'BB', 'HB', 'FB', 'AI')
        boardName:
          type: string
          description: Full name of the board type (e.g., 'Room Only')
        remarks:
          type: string
          description: Additional remarks about the rate
        priceType:
          type: string
          enum:
            - commission
            - net
          description: Pricing model used for this rate
        commission:
          type: array
          items:
            type: object
            properties:
              amount:
                type: number
                format: float
              currency:
                type: string
          description: Commission details if applicable
        retailRate:
          type: object
          properties:
            total:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                    format: float
                    description: Total price in miles for Rove
                  currency:
                    type: string
                    description: Currency code (will be MILES for Rove)
            suggestedSellingPrice:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                    format: float
                  currency:
                    type: string
                  source:
                    type: string
                    description: Source of the suggested price
            initialPrice:
              type: array
              items:
                type: object
                properties:
                  amount:
                    type: number
                    format: float
                  currency:
                    type: string
            taxesAndFees:
              type: array
              items:
                type: object
                properties:
                  included:
                    type: boolean
                    description: Whether the tax/fee is included in the total price
                  description:
                    type: string
                    description: Description of the tax or fee
                  amount:
                    type: number
                    format: float
                  currency:
                    type: string
        cancellationPolicies:
          type: object
          properties:
            cancelPolicyInfos:
              type: array
              items:
                type: object
                properties:
                  cancelTime:
                    type: string
                    format: date-time
                    description: Deadline for cancellation
                  amount:
                    type: number
                    format: float
                    description: Amount charged for cancellation in miles for Rove
                  currency:
                    type: string
                  type:
                    type: string
                    description: Type of cancellation policy (e.g., 'amount', 'percentage')
                  timezone:
                    type: string
                    description: Timezone for the cancel time
            hotelRemarks:
              type: array
              items:
                type: string
              description: Additional remarks from the hotel regarding cancellation
            refundableTag:
              type: string
              description: Tag indicating refundability (e.g., 'RFN' for refundable)
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 400
            message: Bad Request
    Unauthorized:
      description: Unauthorized - Invalid or missing token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 401
            message: Unauthorized - Invalid or missing token
    InternalError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 500
            message: Internal Server Error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API key for authentication. Add your API key to the Authorization header
        with this format: 'Bearer your_api_key_here'

````