TUI Flight Availability Search API (NSKCC)

Real-time flight availability and pricing search, documented as the first step in the booking process. A single GET /search operation takes IATA station codes or ISO country codes, an outbound and optional inbound date window, trip type, carrier codes and passenger count, and returns grouped flight results. Each API key is bound to a specific New Skies agent profile, which determines which flights and fares are visible.

OpenAPI Specification

tui-group-tui-flight-availability-search-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NSKCC Availability Search API
  description: Flight availability search API with pricing information
  version: '0.1.73'
tags:
  - name: Health
  - name: Search
paths:
  /search:
    get:
      tags:
        - Search
      summary: Search for availability
      operationId: SearchAvailability
      parameters:
        - name: carrierCodes
          in: query
          description: >-
            Comma-separated list of airline carrier codes to filter flights
            (e.g., TB,OR,X3)
          schema:
            type: array
            items:
              type: string
            example: 'TB,OR,X3'
          example: 'TB,OR,X3'
        - name: departureStationCodes
          in: query
          description: >-
            Comma-separated list of departure airport codes to filter flights
            (e.g., BRU,LHR,MAN)
          schema:
            type: array
            items:
              type: string
            example: 'BRU,LHR,MAN'
          example: 'BRU,LHR,MAN'
        - name: arrivalStationCodes
          in: query
          description: >-
            Comma-separated list of arrival airport codes to filter flights
            (e.g., ACE,LPA,PMI)
          schema:
            type: array
            items:
              type: string
            example: 'ACE,LPA,PMI'
          example: 'ACE,LPA,PMI'
        - name: departureCountries
          in: query
          description: >-
            Comma-separated list of departure country codes to filter flights
            (e.g., GB,DE,BE)
          schema:
            type: array
            items:
              type: string
            example: 'GB,DE,BE'
          example: 'GB,DE,BE'
        - name: arrivalCountries
          in: query
          description: >-
            Comma-separated list of arrival country codes to filter flights
            (e.g., ES,FR,IT)
          schema:
            type: array
            items:
              type: string
            example: 'ES,FR,IT'
          example: 'ES,FR,IT'
        - name: outboundStartDate
          in: query
          description: >-
            Start date of the search range for outbound flights. Use this with
            OutboundEndDate to search flights within a date range. Format:
            yyyy-MM-dd (e.g., 2024-06-01)
          schema:
            type: string
            format: date
            example: '2024-06-01'
          example: '2024-06-01'
        - name: outboundEndDate
          in: query
          description: >-
            End date of the search range for outbound flights. Use this with
            OutboundStartDate to search flights within a date range. Format:
            yyyy-MM-dd (e.g., 2024-12-31)
          schema:
            type: string
            format: date
            example: '2024-12-31'
          example: '2024-12-31'
        - name: inboundStartDate
          in: query
          description: >-
            Start date of the search range for inbound/return flights. Use this
            with InboundEndDate to search return flights within a date range.
            Format: yyyy-MM-dd (e.g., 2024-06-15)
          schema:
            type: string
            format: date
            example: '2024-06-15'
          example: '2024-06-15'
        - name: inboundEndDate
          in: query
          description: >-
            End date of the search range for inbound/return flights. Use this
            with InboundStartDate to search return flights within a date range.
            Format: yyyy-MM-dd (e.g., 2024-07-31)
          schema:
            type: string
            format: date
            example: '2024-07-31'
          example: '2024-07-31'
        - name: PassengerCount
          in: query
          description: 'Number of passengers for availability check (default: 1)'
          schema:
            type: integer
            format: int32
            default: 1
            example: 1
          example: 1
        - name: LimitGroups
          in: query
          description: Maximum number of flight groups to return in the response
          schema:
            type: integer
            format: int32
            example: 10
          example: 10
        - name: LimitFlights
          in: query
          description: Maximum number of flights to return per group in the response
          schema:
            type: integer
            format: int32
            example: 5
          example: 5
        - name: AgentName
          in: header
          description: Agent name for role-based access control and pricing
          schema:
            type: string
            example: AgentName
          example: AgentName
        - name: GroupBy
          in: query
          description: 'Grouping strategy for results: 0 = OriginDestination, 1 = Date'
          schema:
            $ref: '#/components/schemas/GroupBy'
          example: 0
        - name: tripType
          in: query
          description: 'Trip type: Oneway or RoundTrip'
          schema:
            $ref: '#/components/schemas/TripType'
          example: Oneway
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        ErrorMessage:
          type: string
          nullable: true
        StackTrace:
          type: string
          nullable: true
      additionalProperties: false
      description: Error response object for the Api.
    Fare:
      type: object
      properties:
        fareBasisCode:
          type: string
          description: Fare basis code identifying the fare type
          nullable: true
        ruleNumber:
          type: string
          description: Fare rule number
          nullable: true
        productClass:
          type: string
          description: 'Product class code (e.g., Y, C, F)'
          nullable: true
        classOfService:
          type: string
          description: Class of service code
          nullable: true
        fareKey:
          type: string
          description: Unique fare identifier
          nullable: true
        encryptedFareKey:
          type: string
          description: Encrypted fare identifier for secure operations
          nullable: true
        currencyCode:
          type: string
          description: 'Currency code (e.g., EUR, GBP, USD)'
          nullable: true
        priceGrossAdt:
          type: number
          description: Gross price for adult passenger
          format: double
        priceGrossChd:
          type: number
          description: Gross price for child passenger
          format: double
        priceGrossInf:
          type: number
          description: Gross price for infant passenger
          format: double
        priceNetAdt:
          type: number
          description: Net price for adult passenger
          format: double
        priceNetChd:
          type: number
          description: Net price for child passenger
          format: double
        taxes:
          type: number
          description: Total taxes amount
          format: double
        fees:
          type: number
          description: Total fees amount
          format: double
        surcharges:
          type: number
          description: Total surcharges amount
          format: double
      additionalProperties: false
      description: Fare pricing and class information
    Flight:
      type: object
      properties:
        arrivalDateTime:
          type: string
          description: Flight arrival date and time
          format: date-time
        availability:
          type: integer
          description: Number of available seats for the requested passenger count
          format: int32
        carrierCode:
          type: string
          description: 'Airline carrier code (e.g., TB, OR, X3)'
          nullable: true
        departureDateTime:
          type: string
          description: Flight departure date and time
          format: date-time
        flightNumber:
          type: string
          description: Flight number
          nullable: true
        journeyKey:
          type: string
          description: Unique journey identifier
          nullable: true
        encryptedJourneyKey:
          type: string
          description: Encrypted journey identifier for secure operations
          nullable: true
        flightDuration:
          type: integer
          description: Flight duration in minutes
          format: int32
        departureStationCode:
          type: string
          description: 'Departure airport code (e.g., BRU, LHR, MAN)'
          nullable: true
        arrivalStationCode:
          type: string
          description: 'Arrival airport code (e.g., ACE, LPA, PMI)'
          nullable: true
        departureCountryCode:
          type: string
          description: 'Departure country code (e.g., GB, DE, BE)'
          nullable: true
        arrivalCountryCode:
          type: string
          description: 'Arrival country code (e.g., ES, FR, IT)'
          nullable: true
        operatingCarrierCode:
          type: string
          description: Operating carrier code if different from marketing carrier
          nullable: true
        stopOverFlights:
          type: array
          items:
            $ref: '#/components/schemas/StopOverFlight'
          description: >-
            List of stopover flights for multi-leg journeys (maximum 2
            stopovers)
          nullable: true
        fares:
          type: array
          items:
            $ref: '#/components/schemas/Fare'
          description: List of available fares with pricing details
          nullable: true
      additionalProperties: false
      description: Flight availability and pricing information
    FlightGroup:
      required:
        - flights
        - name
      type: object
      properties:
        name:
          type: string
          description: >-
            Group identifier (e.g., 'BRU-ACE' for origin-destination or
            '2024-07-15' for date grouping)
          nullable: true
        flights:
          type: array
          items:
            $ref: '#/components/schemas/Flight'
          description: List of flights within this group
          nullable: true
      additionalProperties: false
      description: Group of flights organized by origin-destination or date
    GroupBy:
      enum:
        - 0
        - 1
      type: integer
      format: int32
    SearchResponse:
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/FlightGroup'
          description: >-
            Collection of flight groups organized by the specified grouping
            strategy
          nullable: true
      additionalProperties: false
      description: Search response containing grouped flight results
    StopOverFlight:
      type: object
      properties:
        stationCode:
          type: string
          description: 'Stopover airport code (e.g., MAD, CDG, AMS)'
          nullable: true
        carrierCode:
          type: string
          description: Marketing carrier code for the stopover leg
          nullable: true
        operatingCarrierCode:
          type: string
          description: Operating carrier code if different from marketing carrier
          nullable: true
        flightNumber:
          type: string
          description: Flight number for the stopover leg
          nullable: true
        sta:
          type: string
          description: Scheduled time of arrival at stopover station
          format: date-time
        std:
          type: string
          description: Scheduled time of departure from stopover station
          format: date-time
      additionalProperties: false
      description: Stopover flight information for multi-leg journeys
    TripType:
      enum:
        - 0
        - 1
      type: integer
      format: int32
    UnauthorizedError:
      type: object
      properties:
        ErrorMessage:
          type: string
          nullable: true
        StackTrace:
          type: string
          nullable: true
      additionalProperties: false
      description: Unauthorized error response object for the Api.