TUI Partner Live Search API

Real-time package search for meta partners in the Nordic region, returning live pricing and availability over REST with OAuth 2.0 client credentials.

OpenAPI Specification

tui-group-tui-meta-partner-package-live-search-openapi.yml Raw ↑
openapi: 3.0.0
components:
  examples: {}
  headers: {}
  parameters: {}
  requestBodies: {}
  responses: {}
  schemas:
    LocationModel:
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
      type: object
      additionalProperties: false
    LocationResponseModel:
      properties:
        total:
          type: number
          format: double
        items:
          items:
            $ref: "#/components/schemas/LocationModel"
          type: array
      required:
        - total
        - items
      type: object
      additionalProperties: false
    ApiAccommodation:
      properties:
        id:
          type: string
        name:
          type: string
        href:
          type: string
        imagesHref:
          type: string
        allInclusive:
          type: boolean
      required:
        - id
        - name
        - href
        - imagesHref
        - allInclusive
      type: object
      additionalProperties: false
    ApiFlightLeg:
      properties:
        typeOfFlightName:
          type: string
        typeOfFlightCode:
          type: string
        airlineCode:
          type: string
        flightCode:
          type: string
        arrivalTime:
          type: string
        arrivalDate:
          type: string
        arrivalCode:
          type: string
        departureTime:
          type: string
        departureDate:
          type: string
        departureCode:
          type: string
        legNumber:
          type: number
          format: double
      required:
        - typeOfFlightName
        - typeOfFlightCode
        - airlineCode
        - flightCode
        - arrivalTime
        - arrivalDate
        - arrivalCode
        - departureTime
        - departureDate
        - departureCode
        - legNumber
      type: object
    ApiPrice:
      properties:
        priceOriginal:
          type: number
          format: double
        currentPrice:
          type: number
          format: double
        currency:
          type: string
        flightClassName:
          type: string
        urlToBooking:
          type: string
        roomTypeCode:
          type: string
        roomTypeName:
          type: string
        boardIncluded:
          type: string
      required:
        - priceOriginal
        - currentPrice
        - currency
        - flightClassName
        - urlToBooking
        - roomTypeCode
        - roomTypeName
        - boardIncluded
      type: object
      additionalProperties: false
    ApiPackage:
      properties:
        departureCode:
          type: string
        departureDate:
          type: string
        departureTime:
          type: string
        returnDate:
          type: string
        duration:
          type: string
        destinationCode:
          type: string
        adults:
          type: number
          format: double
        youths:
          type: number
          format: double
        children:
          type: number
          format: double
        infants:
          type: number
          format: double
        accommodation:
          $ref: "#/components/schemas/ApiAccommodation"
        priority:
          type: number
          format: double
        flightClimateCompensated:
          type: boolean
        charterFlight:
          type: boolean
        outboundFlightLegs:
          items:
            $ref: "#/components/schemas/ApiFlightLeg"
          type: array
        homeboundFlightLegs:
          items:
            $ref: "#/components/schemas/ApiFlightLeg"
          type: array
        prices:
          items:
            $ref: "#/components/schemas/ApiPrice"
          type: array
      required:
        - departureCode
        - departureDate
        - departureTime
        - returnDate
        - duration
        - destinationCode
        - adults
        - youths
        - children
        - infants
        - accommodation
        - priority
        - flightClimateCompensated
        - charterFlight
        - outboundFlightLegs
        - homeboundFlightLegs
        - prices
      type: object
      additionalProperties: false
    ApiPackages:
      properties:
        next:
          type: string
          nullable: true
        totalNumberOfItems:
          type: number
          format: double
        version:
          type: string
        items:
          items:
            $ref: "#/components/schemas/ApiPackage"
          type: array
      required:
        - next
        - totalNumberOfItems
        - version
        - items
      type: object
      additionalProperties: false
    AccommodationModel:
      properties:
        id:
          type: string
        name:
          type: string
        locations:
          type: string
        tags:
          type: string
      required:
        - id
        - name
        - locations
        - tags
      type: object
      additionalProperties: false
    AccommodationResponseModel:
      properties:
        total:
          type: number
          format: double
        items:
          items:
            $ref: "#/components/schemas/AccommodationModel"
          type: array
      required:
        - total
        - items
      type: object
      additionalProperties: false
  securitySchemes:
    tsoa_auth_prod:
      type: oauth2
      description: Production OAuth2
      flows:
        clientCredentials:
          tokenUrl: https://prod.api.tui/oauth2/token
          scopes:
            read:sales-meta-package: Read access
    tsoa_auth_preprod:
      type: oauth2
      description: Pre-production OAuth2
      flows:
        clientCredentials:
          tokenUrl: https://pre-prod.api.tui/oauth2/token
          scopes:
            read:sales-meta-package: Read access
info:
  title: Meta Partner Package Live Search
  description: The Partner Live Search API allows partners to access real-time
    travel packages, including live pricing and availability, through a set of
    RESTful endpoints.
  version: v1-beta
paths:
  /{market}/packages/{agent}/locations:
    get:
      operationId: GetLocations
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LocationResponseModel"
      description: Get all locations for a specific market
      tags:
        - Live Search Packages (Beta)
      security:
        - tsoa_auth_prod: []
        - tsoa_auth_preprod: []
      parameters:
        - description: "The source market code. Accepted values: dk, fi, no, se."
          in: path
          name: market
          required: true
          schema:
            type: string
            pattern: ^dk$|^fi$|^no$|^se$
        - description: Your agent code. Use the same for every request made.
          in: path
          name: agent
          required: true
          schema:
            type: string
            pattern: ^\w+$
  /{market}/packages/{agent}:
    get:
      operationId: GetLiveSearch
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiPackages"
      description: This endpoint returns available packages.
      tags:
        - Live Search Packages (Beta)
      security:
        - tsoa_auth_prod: []
        - tsoa_auth_preprod: []
      parameters:
        - description: "Your agent code. Use the same for every request made.\r

            \r

            Example - tui"
          in: path
          name: agent
          required: true
          schema:
            type: string
            pattern: ^\w+$
        - description: "The source market code.\r

            \r

            Accepted values: dk, fi, no, se."
          in: path
          name: market
          required: true
          schema:
            type: string
            pattern: ^dk$|^fi$|^no$|^se$
        - description: "Number of Adults in the request.\r

            \r

            Accepted Values - 1 to 6"
          in: query
          name: adults
          required: true
          schema:
            format: int32
            type: integer
            minimum: 1
            maximum: 6
        - description: "Ages of Children in the request separated by comma. If no children
            are sent in the request, this parameter should not be sent (or sent
            as ?childAges=).\r

            \r

            For 2 children with age 5 and 7, the value should be 5,7.\r

            Age ranges are, infant: 0-1, child: 2-12, youth: 13-17."
          in: query
          name: childages
          required: false
          schema:
            default: ""
            type: string
            pattern: ^$|^(1[0-7]|[0-9])(,(1[0-7]|[0-9]))*$
        - description: "The G-code value for each destination that is mapped through the
            locations endpoint.\r

            Multiple destinations can be sent in the request separated by
            comma.\r

            \r

            Example: G-000000234,G-000000256,G-000000293,G-000000293"
          in: query
          name: destinations
          required: true
          schema:
            type: string
        - description: "Date of arrival from. Date must be compatible with ISO 8601.
            Example: arrivaldatefrom=2035-01-31"
          in: query
          name: arrivaldatefrom
          required: true
          schema:
            type: string
            pattern: ^\d{4}\-(0[1-9]|(1[0-2]))\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$
        - description: "Date of arrival to.\r

            Date must be compatible with ISO 8601.\r

            \r

            Example: arrivaldateto=2035-01-31"
          in: query
          name: arrivaldateto
          required: true
          schema:
            type: string
            pattern: ^\d{4}\-(0[1-9]|(1[0-2]))\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$
        - description: "A list of one or more stay durations. Example: 3,5,7,14"
          in: query
          name: durations
          required: true
          schema:
            type: string
            pattern: ^\d+(,\d+)*$
        - description: "A list of airportcodes separated by comma that are requested by
            user as Departure locations.\r

            \r

            Example: ARN,GOT,CPH"
          in: query
          name: airportcodes
          required: false
          schema:
            default: ""
            type: string
        - description: "The number of items to return. Maximum: 100."
          in: query
          name: limit
          required: false
          schema:
            default: 20
            format: int32
            type: integer
            maximum: 100
  /{market}/packages/{agent}/accommodations:
    get:
      operationId: GetAccommodations
      responses:
        "200":
          description: Ok
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccommodationResponseModel"
      description: Get all Accommodations for a specific market
      tags:
        - Live Search Packages (Beta)
      security:
        - tsoa_auth_prod: []
        - tsoa_auth_preprod: []
      parameters:
        - description: "The source market code. Accepted values: dk, fi, no, se."
          in: path
          name: market
          required: true
          schema:
            type: string
            pattern: ^dk$|^fi$|^no$|^se$
        - description: Your agent code. Use the same for every request made.
          in: path
          name: agent
          required: true
          schema:
            type: string
            pattern: ^\w+$
servers:
  - url: https://prod.api.tui/sales/pip-package/live-search/v1-beta
    description: Prod Server
  - url: https://pre-prod.api.tui/sales/pip-package/live-search/v1-beta
    description: Pre-prod Server