LiteAPI Booking API

The reservation lifecycle - prebook a selected rate to lock price and obtain a prebookId, confirm the booking with guest and payment details, retrieve booking details, list bookings, and cancel a booking.

OpenAPI Specification

nuitee-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: LiteAPI (Nuitée) Hotel Booking API
  description: >-
    LiteAPI by Nuitée is a unified hotel-booking and distribution API. It
    provides static hotel content and reference data, real-time rates and
    availability, the prebook/book/retrieve/cancel reservation flow, and
    loyalty and voucher management over 2M+ properties. All requests are
    authenticated with an X-API-Key header; a free sandbox key is available.
  termsOfService: https://www.liteapi.travel/terms
  contact:
    name: LiteAPI Support
    url: https://docs.liteapi.travel
  version: '3.0'
servers:
  - url: https://api.liteapi.travel/v3.0
    description: LiteAPI v3.0 production and sandbox base URL (key selects environment)
security:
  - ApiKeyAuth: []
tags:
  - name: Hotel Data
    description: Static hotel content, reviews, and reference data.
  - name: Rates
    description: Real-time room rates and availability search.
  - name: Booking
    description: Prebook, book, retrieve, list, and cancel reservations.
  - name: Loyalty
    description: Loyalty program configuration, points, and vouchers.
paths:
  /data/hotels:
    get:
      operationId: getHotels
      tags:
        - Hotel Data
      summary: List hotels
      description: Retrieve a list of hotels filtered by country, city, coordinates, or place.
      parameters:
        - name: countryCode
          in: query
          schema:
            type: string
          description: ISO-2 country code.
        - name: cityName
          in: query
          schema:
            type: string
        - name: offset
          in: query
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: A list of hotels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelListResponse'
  /data/hotel:
    get:
      operationId: getHotelDetails
      tags:
        - Hotel Data
      summary: Get hotel details
      description: Retrieve comprehensive details about a specific hotel.
      parameters:
        - name: hotelId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Hotel detail object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelDetailResponse'
  /data/reviews:
    get:
      operationId: getHotelReviews
      tags:
        - Hotel Data
      summary: Get hotel reviews
      description: Fetch guest reviews for a specific hotel.
      parameters:
        - name: hotelId
          in: query
          required: true
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: A list of reviews.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewsResponse'
  /data/countries:
    get:
      operationId: getCountries
      tags:
        - Hotel Data
      summary: List countries
      responses:
        '200':
          description: A list of countries with ISO-2 codes.
  /data/cities:
    get:
      operationId: getCities
      tags:
        - Hotel Data
      summary: List cities
      parameters:
        - name: countryCode
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A list of cities for the given country.
  /data/currencies:
    get:
      operationId: getCurrencies
      tags:
        - Hotel Data
      summary: List currencies
      responses:
        '200':
          description: A list of supported currencies.
  /data/iatacodes:
    get:
      operationId: getIataCodes
      tags:
        - Hotel Data
      summary: List IATA codes
      responses:
        '200':
          description: A list of IATA airport and city codes.
  /hotels/rates:
    post:
      operationId: searchRates
      tags:
        - Rates
      summary: Search hotel rates
      description: >-
        Search for real-time room rates and availability across multiple
        hotels by hotel IDs, city, coordinates, place, or IATA code.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RatesSearchRequest'
      responses:
        '200':
          description: Rates and availability results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RatesSearchResponse'
  /rates/prebook:
    post:
      operationId: prebook
      tags:
        - Booking
      summary: Prebook a rate
      description: >-
        Initiate a prebooking session for a selected rate to lock the price
        and obtain a prebookId used to complete the booking.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrebookRequest'
      responses:
        '200':
          description: Prebook session created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrebookResponse'
  /rates/book:
    post:
      operationId: book
      tags:
        - Booking
      summary: Confirm a booking
      description: Confirm a booking using a prebookId, guest details, and payment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookRequest'
      responses:
        '200':
          description: Booking confirmation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
  /bookings:
    get:
      operationId: listBookings
      tags:
        - Booking
      summary: List bookings
      description: Retrieve a list of all bookings, optionally filtered by date.
      responses:
        '200':
          description: A list of bookings.
  /bookings/{bookingId}:
    get:
      operationId: getBooking
      tags:
        - Booking
      summary: Retrieve a booking
      description: Get complete details for a specific booking.
      parameters:
        - name: bookingId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Booking detail.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
    put:
      operationId: cancelBooking
      tags:
        - Booking
      summary: Cancel a booking
      description: Cancel an existing booking by its identifier.
      parameters:
        - name: bookingId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Cancellation confirmation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
  /loyalties:
    get:
      operationId: getLoyalty
      tags:
        - Loyalty
      summary: Get loyalty settings
      description: Retrieve current loyalty program settings and cashback rates.
      responses:
        '200':
          description: Loyalty program settings.
    put:
      operationId: updateLoyalty
      tags:
        - Loyalty
      summary: Update loyalty settings
      description: Update loyalty program status and cashback rates.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoyaltyRequest'
      responses:
        '200':
          description: Updated loyalty settings.
  /guests/{guestId}/bookings:
    get:
      operationId: getGuestBookings
      tags:
        - Loyalty
      summary: Get guest bookings
      description: >-
        Retrieve a list of bookings for a specific guest, including points
        earned and cashback applied.
      parameters:
        - name: guestId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Guest booking history with loyalty details.
  /vouchers:
    get:
      operationId: listVouchers
      tags:
        - Loyalty
      summary: List vouchers
      responses:
        '200':
          description: A paginated list of vouchers.
    post:
      operationId: createVoucher
      tags:
        - Loyalty
      summary: Create a voucher
      description: Create a discount voucher.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoucherRequest'
      responses:
        '200':
          description: Created voucher.
  /vouchers/{voucherId}:
    get:
      operationId: getVoucher
      tags:
        - Loyalty
      summary: Retrieve a voucher
      parameters:
        - name: voucherId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Voucher detail.
    delete:
      operationId: deleteVoucher
      tags:
        - Loyalty
      summary: Delete a voucher
      parameters:
        - name: voucherId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Deletion confirmation.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        LiteAPI key passed in the X-API-Key request header. A free sandbox
        key is available; live keys are issued from the LiteAPI dashboard.
  schemas:
    HotelListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Hotel'
    Hotel:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        country:
          type: string
        city:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        starRating:
          type: number
    HotelDetailResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Hotel'
    ReviewsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              rating:
                type: number
              text:
                type: string
              date:
                type: string
    RatesSearchRequest:
      type: object
      required:
        - checkin
        - checkout
        - occupancies
      properties:
        hotelIds:
          type: array
          items:
            type: string
        cityName:
          type: string
        countryCode:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        iataCode:
          type: string
        placeId:
          type: string
        checkin:
          type: string
          format: date
        checkout:
          type: string
          format: date
        occupancies:
          type: array
          items:
            type: object
            properties:
              adults:
                type: integer
              children:
                type: array
                items:
                  type: integer
        currency:
          type: string
        guestNationality:
          type: string
        margin:
          type: number
          description: Percentage commission margin added to the net rate.
        refundableRatesOnly:
          type: boolean
    RatesSearchResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              hotelId:
                type: string
              roomTypes:
                type: array
                items:
                  type: object
    PrebookRequest:
      type: object
      required:
        - offerId
      properties:
        offerId:
          type: string
          description: The rate offer identifier returned by /hotels/rates.
        usePaymentSdk:
          type: boolean
    PrebookResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            prebookId:
              type: string
            transactionId:
              type: string
            price:
              type: number
            currency:
              type: string
    BookRequest:
      type: object
      required:
        - prebookId
        - holder
        - guests
      properties:
        prebookId:
          type: string
        holder:
          type: object
          properties:
            firstName:
              type: string
            lastName:
              type: string
            email:
              type: string
        guests:
          type: array
          items:
            type: object
            properties:
              firstName:
                type: string
              lastName:
                type: string
        payment:
          type: object
          properties:
            method:
              type: string
    BookingResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            bookingId:
              type: string
            status:
              type: string
            hotelConfirmationCode:
              type: string
            checkin:
              type: string
              format: date
            checkout:
              type: string
              format: date
            price:
              type: number
            currency:
              type: string
    LoyaltyRequest:
      type: object
      properties:
        status:
          type: string
          enum:
            - enabled
            - disabled
        cashbackRate:
          type: number
    VoucherRequest:
      type: object
      properties:
        voucherCode:
          type: string
        discountType:
          type: string
        discountValue:
          type: number
        currency:
          type: string
        validityStart:
          type: string
          format: date
        validityEnd:
          type: string
          format: date