TUI Group Cruise Add a stay API

The Cruise Add a stay API from TUI Group — 1 operation(s) for cruise add a stay.

Operations 1

POST /v1/cruises/stay-upsell-options API to cross-sell stay for the selected packages #

Documentation

📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/simple-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/advanced-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/creditcard-payments
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/check-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/booking-flow
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/description
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-details
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/code-examples
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/description
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/data-format
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-description
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-details
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-flight-ota-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/technical-details
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-description
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-details
📖
Documentation
https://developer.tui/api-catalog/walldy-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/walldy-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/api-description
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/meta-search-generic-api/api-description
📖
Documentation
https://developer.tui/api-catalog/partner-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ship-content-api/api-description

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tui-group-cruise-add-a-stay-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tui-group-cruise-add-a-stay-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TUI Cruise Price and Availability. Cruise Add a stay API
  description: These APIs returns price and availability for given search criteria
  version: '1.0'
  contact:
    email: cruise-api-support@TUIGroup.onmicrosoft.com
    name: Cruise API Support
  x-header: 'This APIs returns cruises prices and availability for given search criteria.

    '
  x-summary: 'This API returns range of availability and pricing information that is specific to the search criteria.

    This API returns offer details and pricing information for a specific itinerary, date range, and duration.

    This API returns availability and pricing information for alternate cabins and boards.

    This API returns availability and pricing information of alternative flights for a specific cruise package.

    This API returns availability and pricing information of alternative stay variants for a specific cruise package.

    '
servers:
- url: https://prod.api.tui/cruisepriceresults
tags:
- name: Cruise Add a stay
paths:
  /v1/cruises/stay-upsell-options:
    post:
      tags:
      - Cruise Add a stay
      summary: API to cross-sell stay for the selected packages
      description: 'This API is designed to cross-sell stay for cruise types, for e.g. provide stay for cruise packages and provide alternate stays for cruise & stay packages.

        '
      operationId: addAStay
      parameters:
      - name: x-Trace-Id
        in: header
        required: true
        description: End to end tracing ID, can be any string
        schema:
          type: string
          pattern: ^[A-Za-z0-9]{10,15}$
          example: OQ9Eu77laT
      - name: env
        in: header
        required: false
        description: A unique environment identifier for request to retrieve from correct ngs instance
        schema:
          type: string
          example: dev,test
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CruiseStayUpsellOfferRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CruiseStayUpsellOfferResponse'
        '400':
          description: Invalid input parameters
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '502':
          description: Bad Gateway
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '504':
          description: Gateway Timed Out
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        default:
          description: Unexpected error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    Accommodation:
      title: Accommodation
      required:
      - code
      - duration
      - room
      type: object
      properties:
        id:
          type: string
          example: 1309874606/3
          description: Atcom Id
        promotionCode:
          type: string
          example: CGCR
          description: Atcom Promo Code
        sourceCode:
          type: string
          example: XXXX0029/011
          description: Atcom accommodation code
        code:
          type: string
          example: A0421241
        name:
          type: string
          example: Avani Bentota Resort
        duration:
          allOf:
          - $ref: '#/components/schemas/Duration'
          - example:
            - checkInDate: 2023-06-07
              checkInTime: 0.0
              checkOutDate: 2023-06-14
              checkOutTime: 0.0
              numberOfNights: 7
        roomBoardRate:
          type: array
          items:
            $ref: '#/components/schemas/RoomBoardRate'
          description: ''
          example:
          - roomType: DDBT
            boardType: HB
            termsConditions: CNX7D
            occupancy:
              adult: 1
              child: 1
            travellers:
            - id: 1
              type: ADULT
            - id: 3
              type: CHILD
            prices:
            - breakdowns:
              - fare:
                - level: ROOM_AND_BOARD
                  type: PER_PAX
                  category: NET
                  value: 99.4
                  travellers:
                  - id: '1'
                  - id: '2'
                discount:
                - level: ROOM_AND_BOARD
                  type: PER_PAX
                  category: DISCOUNT
                  value: 0.27
                  travellers:
                  - id: '1'
                  - id: '2'
                total:
                - level: ROOM_AND_BOARD
                  type: PER_PAX
                  category: GROSS
                  value: 109.99
                  travellers:
                  - id: '1'
                  - id: '2'
              total:
              - level: ROOM_AND_BOARD
                type: PER_BOOKING
                category: GROSS
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
        room:
          type: array
          items:
            $ref: '#/components/schemas/Room'
          description: ''
          example:
          - code: DDBT
            name: Deluxe Double Room with Balcony or Terrace
            minPax: 1
            maxPax: 2
            default: true
            freeKids: false
            prices:
            - breakdowns:
              - fare:
                - level: ROOM
                  type: PER_PAX
                  category: NET
                  value: 99.4
                  travellers:
                  - id: '1'
                  - id: '2'
                discount:
                - level: ROOM
                  type: PER_PAX
                  category: DISCOUNT
                  value: 0.27
                  travellers:
                  - id: '1'
                  - id: '2'
                total:
                - level: ROOM
                  type: PER_PAX
                  category: GROSS
                  value: 109.99
                  travellers:
                  - id: '1'
                  - id: '2'
              total:
              - level: ROOM
                category: GROSS
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
        board:
          type: array
          items:
            $ref: '#/components/schemas/Board'
          description: ''
          example:
          - id: string
            code: HB
            name: Half board
            prices:
            - breakdowns:
              - fare:
                - level: BOARD
                  type: PER_PAX
                  category: NET
                  value: 99.4
                  travellers:
                  - id: '1'
                  - id: '2'
                discount:
                - level: BOARD
                  type: PER_PAX
                  category: DISCOUNT
                  value: 0.27
                  travellers:
                  - id: '1'
                  - id: '2'
                total:
                - level: BOARD
                  type: PER_PAX
                  category: GROSS
                  value: 109.99
                  travellers:
                  - id: '1'
                  - id: '2'
              total:
              - level: BOARD
                type: PER_PAX
                category: GROSS
                value: 109.99
                travellers:
                - id: '1'
                - id: '2'
        sourceInformation:
          allOf:
          - $ref: '#/components/schemas/SourceInformation'
          - example:
            - category: CONTRACTED
              system: TUIAccommodationSourcing
    SeenPrice:
      type: object
      properties:
        currency:
          type: string
          example: GBP
        value:
          type: string
          example: '199.99'
      required:
      - value
    MetaInformation:
      title: MetaInformation
      description: Details of requester who wants to use this API
      required:
      - locale
      - market
      - brand
      - channel
      - medium
      - currency
      type: object
      properties:
        locale:
          type: string
          example: en_GB
        market:
          type: string
          example: GB
        brand:
          type: string
          example: MARELLA_UK
        channel:
          type: string
          example: B2B
        medium:
          type: string
          example: WEB
        agent:
          type: string
          example: T|MARCR
          description: 'Agent identifier in format T|XXXX where XXXX is the agent code. Examples include: T|MARCR, T|J0332, T|RIVER'
        currency:
          type: string
          example: GBP
      additionalProperties: false
    PointType:
      type: string
      example: PORT
      enum:
      - HOTEL
      - AIRPORT
      - PORT
      - POI
      - RESORT
      - CITY
      - DESTINATION
      - REGION
      - COUNTRY
      - CONTINENT
    Ship:
      type: object
      properties:
        code:
          type: string
          example: '150016'
        name:
          type: string
          example: MARELLA VOYAGER
        cruiseLine:
          $ref: '#/components/schemas/CruiseLine'
    PriceDetail:
      title: PriceDetail
      required:
      - total
      type: object
      properties:
        breakdowns:
          type: array
          items:
            $ref: '#/components/schemas/PriceBreakdown'
          description: ''
          example:
          - fare:
            - level: DIRECTION
              type: PER_PAX
              category: NET
              value: 99.4
              travellers:
              - id: '1'
              - id: '2'
            tax:
            - level: DIRECTION
              type: PER_PAX
              category: AIRPORT_TAX
              code: BE2
              value: 0.27
              travellers:
              - id: '1'
            total:
            - level: DIRECTION
              type: PER_PAX
              category: GROSS
              value: 109.99
              travellers:
              - id: '1'
              - id: '2'
        bookingFee:
          type: array
          default: []
          items:
            $ref: '#/components/schemas/BookingFee'
        total:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: DIRECTION
            category: GROSS
            value: 99.4
            travellers:
            - id: '1'
            - id: '2'
    StayDuration:
      title: Stay Duration
      type: object
      required:
      - numberOfNights
      - stayOrder
      properties:
        numberOfNights:
          title: Number of nights
          type: integer
          format: int32
          example: 5
          description: Number of nights stay in before or after cruise
        stayOrder:
          title: Stay order
          type: string
          enum:
          - STAYAFTERCRUISE
          - STAYBEFORECRUISE
          description: The stay order before or after cruise
      additionalProperties: false
      description: Stay is available only for the 7 days cruise sailing duration
    RoomBoardRate:
      title: RoomBoardRate
      required:
      - roomType
      - boardType
      - travellers
      - prices
      type: object
      properties:
        roomType:
          type: string
          example: DDBT
        boardType:
          type: string
          example: HB
        termsConditions:
          type: string
          example: CNX7D
        occupancy:
          allOf:
          - $ref: '#/components/schemas/Occupancy'
          - example:
            - adult: 1
              child: 1
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
          description: ''
          example:
          - id: 1
            type: ADULT
          - id: 3
            type: CHILD
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceDetail'
          description: ''
          example:
          - breakdowns:
            - fare:
              - level: ROOM_AND_BOARD
                type: PER_PAX
                category: NET
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
              discount:
              - level: ROOM_AND_BOARD
                type: PER_PAX
                category: DISCOUNT
                value: 0.27
                travellers:
                - id: '1'
                - id: '2'
                - id: '3'
                - id: '4'
              total:
              - level: ROOM_AND_BOARD
                type: PER_PAX
                category: GROSS
                value: 109.99
                travellers:
                - id: '1'
                - id: '2'
            total:
            - level: ROOM_AND_BOARD
              category: GROSS
              value: 99.4
              travellers:
              - id: '1'
              - id: '2'
    PriceLevel:
      type: string
      example: SAILING
      enum:
      - DIRECTION
      - FLIGHT
      - HOLIDAY
      - ROOM
      - BOARD
      - ROOM_AND_BOARD
      - CABIN
      - CABIN_AND_BOARD
      - SAILING
      - OFFER_GROUP
    CruiseStayUpsellOfferRequest:
      type: object
      required:
      - metaInformation
      - offer
      properties:
        metaInformation:
          $ref: '#/components/schemas/MetaInformation'
        offer:
          $ref: '#/components/schemas/CruiseStayUpsellRequest'
        alternateStayDurations:
          description: Used to send the required alt stay duration data
          type: array
          items:
            type: integer
    Point:
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        type:
          $ref: '#/components/schemas/PointType'
    CruiseType:
      title: Cruise Type
      type: string
      enum:
      - FLY_CRUISE
      - FLY_CRUISEANDSTAY
      - FLY_STAYANDCRUISE
      - FLY_BACKTOBACK_CRUISE
      - CRUISE_ONLY
    Direction:
      title: Direction
      required:
      - id
      - type
      - segments
      type: object
      properties:
        id:
          type: string
          example: string
        type:
          $ref: '#/components/schemas/DirectionType'
          example:
          - OUTBOUND
        supplier:
          allOf:
          - $ref: '#/components/schemas/Supplier'
          - example:
            - code: string
        segments:
          type: array
          items:
            $ref: '#/components/schemas/Segment'
          description: ''
          example:
          - id: string
            departurePoint:
              code: PMI
              type: AIRPORT
            arrivalPoint:
              code: A123S
              countryCode: string
              type: RESORT
            departureDate: 2023-06-07
            departureTime: 09:45:00
            arrivalDate: 2023-06-07
            arrivalTime: 38700
        sourceInformation:
          allOf:
          - $ref: '#/components/schemas/SourceInformation'
          - example:
            - category: CONTRACTED
              system: ASTERIX
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceDetail'
          description: ''
          example:
          - breakdowns:
            - fare:
              - level: DIRECTION
                type: PER_PAX
                category: NET
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
              fee:
              - level: DIRECTION
                type: PER_PAX
                category: AIRPORT_TAX
                code: BE2
                value: 0.27
                travellers:
                - id: '1'
                - id: '2'
              total:
              - level: DIRECTION
                type: PER_PAX
                category: GROSS
                value: 109.99
                travellers:
                - id: '1'
                - id: '2'
            - fare:
              - level: DIRECTION
                type: PER_CHILD
                category: NET
                value: 99.4
                travellers:
                - id: '3'
                - id: '4'
              fee:
              - level: DIRECTION
                type: PER_CHILD
                category: NET
                code: BE2
                value: 0.27
                travellers:
                - id: '3'
                - id: '4'
              total:
              - level: DIRECTION
                type: PER_CHILD
                category: GROSS
                value: 109.99
                travellers:
                - id: '3'
                - id: '4'
            total:
            - level: DIRECTION
              category: GROSS
              value: 99.4
              travellers:
              - id: '1'
              - id: '2'
    StayUpsellOffers:
      type: object
      required:
      - type
      - stay
      properties:
        type:
          $ref: '#/components/schemas/CruiseType'
        offerGroup:
          $ref: '#/components/schemas/OfferGroup'
          description: The offer group is applicable only for the offer type  FLY_CRUISEANDSTAY, FLY_STAYANDCRUISE and FLY_BACKTOBACK
        stay:
          type: array
          items:
            $ref: '#/components/schemas/StayResponse'
        flights:
          type: array
          items:
            $ref: '#/components/schemas/FlightResponse'
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceDetail'
          example:
          - breakdowns:
            - fare:
              - level: HOLIDAY
                type: PER_PAX
                category: NET
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
              - level: HOLIDAY
                type: PER_BOOKING
                category: NET
                value: 299.4
                travellers:
                - id: '1'
                - id: '2'
              discount:
              - level: HOLIDAY
                type: PER_PAX
                category: DISCOUNT
                value: 99.27
                travellers:
                - id: '1'
                - id: '2'
                - id: '3'
                - id: '4'
              - level: HOLIDAY
                type: PER_BOOKING
                category: DISCOUNT
                value: 199.27
                travellers:
                - id: '1'
                - id: '2'
                - id: '3'
                - id: '4'
              deposit:
              - level: HOLIDAY
                type: PER_PAX
                category: LOW_DEPOSIT
                value: 99.27
                travellers:
                - id: '1'
                - id: '2'
                - id: '3'
                - id: '4'
              - level: HOLIDAY
                type: PER_BOOKING
                category: LOW_DEPOSIT
                value: 199.27
                travellers:
                - id: '1'
                - id: '2'
                - id: '3'
                - id: '4'
              total:
              - level: HOLIDAY
                type: PER_PAX
                category: NET
                value: 1984.969
                travellers:
                - id: '1'
                - id: '2'
              - level: HOLIDAY
                type: PER_BOOKING
                category: NET
                value: 1984.96
                travellers:
                - id: '1'
                - id: '2'
            total:
            - level: HOLIDAY
              type: PER_BOOKING
              category: NET
              value: 1984.96
              travellers:
              - id: '1'
              - id: '2'
    FlightResponse:
      title: Flight
      required:
      - id
      - directions
      - travellers
      type: object
      properties:
        id:
          type: string
          example: 1317590995/4653275
        routeCode:
          type: string
          example: TFSLTN5ALTNTFS
        directions:
          type: array
          items:
            $ref: '#/components/schemas/Direction'
          description: ''
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
          description: ''
        totalPrice:
          allOf:
          - $ref: '#/components/schemas/SeenPrice'
      example:
        id: '1'
        routeCode: TFSLTN5ALTNTFS
        directions:
        - id: '1'
          type: OUTBOUND
          segments:
          - id: '1'
            operatingCarrier: TB
            marketingCarrier: TB
            flightNo: '1114'
            departurePoint:
              code: LGW
            arrivalPoint:
              code: PMI
            departureDate: 2023-10-11
            departureTime: 09:45:00
            arrivalDate: 2023-10-11
            arrivalTime: 45300
            sectors:
            - departureAirport:
                code: LGW
              departureDate: 2023-10-11
              departureTime: 09:45:00
              arrivalAirport:
                code: PMI
              arrivalDate: 2023-10-11
              arrivalTime: 45300
          sourceInformation:
            category: CONTRACTED
            system: NewSkies
            journeyKey: string
        travellers:
        - id: 1
          type: ADULT
        - id: 2
          type: ADULT
        - id: 3
          type: CHILD
        - id: 4
          type: CHILD
    Supplier:
      title: Supplier
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: string
    Currency:
      title: Currency
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: EUR
    Segment:
      title: Segment
      required:
      - id
      - departurePoint
      - arrivalPoint
      - departureDate
      - departureTime
      - arrivalDate
      - arrivalTime
      type: object
      properties:
        id:
          type: string
          example: '1'
        operatingCarrier:
          type: string
          example: TB
        marketingCarrier:
          type: string
          example: TB
        flightNo:
          type: string
          example: '1114'
        departurePoint:
          allOf:
          - $ref: '#/components/schemas/Point'
          - example:
            - code: LGW
        arrivalPoint:
          allOf:
          - $ref: '#/components/schemas/Point'
          - example:
            - code: PMI
        departureDate:
          type: string
          example: '2023-10-11'
        departureTime:
          type: string
          format: time
          example: 09:45:00
        arrivalDate:
          type: string
          example: '2023-10-11'
        arrivalTime:
          type: string
          format: time
          example: '12:35:00'
        sectors:
          type: array
          items:
            $ref: '#/components/schemas/Sector'
          description: ''
          example:
          - departureAirport:
              code: code
            departureDate: '2023-10-11'
            departureTime: 09:45:00
            arrivalAirport:
              code: PMI
            arrivalDate: '2023-10-11'
            arrivalTime: '12:35:00'
    Money:
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        value:
          default: 0.0
          type: number
          example: 100.0
      required:
      - value
    CruiseStayUpsellRequest:
      type: object
      required:
      - type
      - cruise
      - travellers
      properties:
        type:
          $ref: '#/components/schemas/CruiseType'
        offerGroup:
          $ref: '#/components/schemas/OfferGroupRequest'
          description: The offer group is applicable only for the offer type  FLY_CRUISEANDSTAY, FLY_STAYANDCRUISE and FLY_BACKTOBACK
        cruise:
          $ref: '#/components/schemas/CruiseRequest'
        stay:
          $ref: '#/components/schemas/StayRequest'
        flight:
          type: array
          items:
            $ref: '#/components/schemas/FlightRequest'
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
      additionalProperties: false
    Board:
      title: Board
      required:
      - code
      type: object
      properties:
        id:
          type: string
          example: string
        code:
          type: string
          example: HB
        name:
          type: string
          example: Half board
        prices:
          type: array
          items:
            $ref: '#/components/schemas/PriceDetail'
          description: ''
          example:
          - breakdowns:
            - fare:
              - level: BOARD
                type: PER_PAX
                category: NET
                value: 99.4
                travellers:
                - id: '1'
                - id: '2'
              discount:
              - level: BOARD
                type: PER_PAX
                category: DISCOUNT
                value: 0.27
                travellers:
                - id: '1'
                - id: '2'
              total:
              - level: BOARD
                type: PER_PAX
                category: GROSS
                value: 109.99
                travellers:
                - id: '1'
                - id: '2'
            total:
            - level: BOARD
              type: PER_PAX
              category: GROSS
              value: 109.99
              travellers:
              - id: '1'
              - id: '2'
    PersonType:
      type: string
      enum:
      - ADULT
      - CHILD
      - INFANT
    DirectionType:
      type: string
      example: INBOUND
      enum:
      - INBOUND
      - OUTBOUND
      - ONEWAY
      - ROUNDTRIP
    Occupancy:
      title: Occupancy
      required:
      - adult
      - child
      type: object
      properties:
        adult:
          type: integer
          example: 1
        child:
          type: integer
          example: 1
        infant:
          type: integer
          example: 0
    CruiseLine:
      type: object
      properties:
        name:
          type: string
          example: Marella
    Price:
      type: object
      required:
      - value
      properties:
        code:
          type: string
        type:
          $ref: '#/components/schemas/PriceType'
        category:
          $ref: '#/components/schemas/PriceCategory'
        level:
          $ref: '#/components/schemas/PriceLevel'
        value:
          type: number
          example: 100.0
        amount:
          $ref: '#/components/schemas/Money'
        travellers:
          type: array
          default: []
          items:
            $ref: '#/components/schemas/TravellerRef'
    Problem:
      description: Error details in case of problems with request
      type: object
      properties:
        type:
          type: string
          description: Type or code of the error
        system:
          type: string
          description: System where error occurred
        title:
          type: string
        details:
          type: string
      additionalProperties: false
    BookingFee:
      type: object
      properties:
        prices:
          type: array
          default: []
          items:
            $ref: '#/components/schemas/Price'
        total:
          type: array
          default: []
          items:
            $ref: '#/components/schemas/Price'
    Duration:
      title: Duration
      required:
      - checkInDate
      - checkOutDate
      - numberOfNights
      type: object
      properties:
        checkInDate:
          type: string
          example: '2023-06-07'
        checkInTime:
          type: string
          example: '00:00:00.00'
        checkOutDate:
          type: string
          example: '2023-06-14'
        checkOutTime:
          type: string
          example: '00:00:00.00'
        numberOfNights:
          type: integer
          format: int32
          example: 7
    PriceBreakdown:
      title: PriceBreakdown
      required:
      - total
      type: object
      properties:
        fare:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: DIRECTION
            type: PER_PAX
            category: NET
            value: 99.4
            travellers:
            - id: '1'
            - id: '2'
        tax:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: DIRECTION
            type: PER_PAX
            category: AIRPORT_TAX
            code: BE2
            value: 0.27
            travellers:
            - id: '1'
            - id: '2'
        discount:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: ROOM
            type: PER_PAX
            category: NET
            value: 0.27
            travellers:
            - id: '1'
            - id: '2'
        fee:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: DIRECTION
            type: PER_PAX
            category: NET
            code: BE2
            value: 0.27
            travellers:
            - id: '1'
            - id: '2'
        deposit:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
          example:
          - level: SAILING
            type: PER_PAX
            category: NET
            code: BE2
            value: 0.27
            travellers:
            - id: '1'
            - id: '2'
        total:
          type: array
          items:
            $ref: '#/components/schemas/Price'
          description: ''
    Itinerary:
      type: object
      properties:
        id:
          type: string
          example: '101426'
        name:
          type: string
          example: Treasures of the Mediterranean
    StayRequest:
      type: object
      required:
      - id
      - code
      - sourceCode
      - duration
      - roomBoard
      properties:
        id:
          type: string
          example: 1176987100/3
        code:
          type: string
          example: '9929'
        sourceCode:
          type: string
          example: ESMJ0004
        duration:
          $ref: '#/components/schemas/StayDuration'
        roomBoard:
          type: array
          items:
            type: object
            required:
            - roomSequenceNumber
            - roomType
            - boardType
            - travellerIds
            properties:
              roomSequenceNumber:
                type: integer
                description: Cabin sequence number start from 1 and increments by 1
                minimum: 1
                maximum: 5
                format: int32
                example: 1
              roomType:
                type: string
                example: ZI01
              boardType:
                type: string
                example: AI
              travellerIds:
                type: array
                items:
                  type: integer
                  format: int32
                example:
                - 2
                - 3
    Traveller:
      title: Traveller
      required:
      - id
      - type
      type: object
      properties:


# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tui-group/refs/heads/main/openapi/tui-group-cruise-add-a-stay-api-openapi.yml