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.