Webjet Search API

The Search API from Webjet — 3 operation(s) for search.

Operations 3

POST /search/flights/{endpoint}/ Flight Search #

Documentation

Specifications

SDKs

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/webjet-search-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

webjet-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Webjet Search API
  x-logo:
    url: https://s3.amazonaws.com/tn-api-docs/trip_ninja_logo.png
    altText: Trip Ninja logo
    href: https://www.tripninja.io/
  version: '1.0'
  description: 'Operations tagged Search across 3 of this provider''s published API definitions: webjet-tripninja-flights-core-openapi.yml, webjet-tripninja-hotels-openapi.yml, webjet-tripninja-v2-booking-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://preprodapi.tripninja.io
  description: Pre-Production server
tags:
- name: Search
paths:
  /search/flights/{endpoint}/:
    post:
      parameters:
      - in: path
        name: endpoint
        required: true
        schema:
          type: string
          enum:
          - preprod
          - prod
        description: Parameter toggles Data Source production and pre-production endpoints
      summary: Flight Search
      description: "This endpoint triggers FareStructure for any number of city search\n\nPlease note that the \"total_cost\" field and \"price\" fields in the response do not contain the markup amount. The \"total_cost\" field is only to display the cheapest trip in the results.\nThe \"price\" fields displayed at the itinerary or segment level do not include the markup amount either. When displaying the trip costs using \"include_itineraries\" = true, use the\n\"price\" at the itinerary level plus the \"tn_net_fare_markup\" amount. If using the segment response type, add the \"price\" value for each of the segments chosen for the trip plus the \"tn_net_fare_markup\"\namount to get the total trip price.\n\nAdditionally, two optional parameters alter the structure of the response. include_itineraries\n and route_flexible both change the structure when passed as true. See the fields description for \n details and examples have been provided in the Response Samples section. \n"
      operationId: FlightSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlightSearchRequest'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SegmentFSSearchResponse'
                - $ref: '#/components/schemas/SegmentFSSearchResponseWithFlexTrip'
                - $ref: '#/components/schemas/ItineraryFSSearchResponse'
                - $ref: '#/components/schemas/ItineraryFsSerachResposneWithFlexTrip'
        400:
          description: Invalid Input
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: sting
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: Not a valid alliance. Expected one of *A, *S, *O
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: sting
                    description: Error code and 0 for success response
                    example: IE44
                  message:
                    type: string
                    description: Contains the error message
                    example: User is not authorized
        206:
          description: Partial Content (Flight not found)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: 'Flight(s) not found: Could not find all the flights required to make up this trip. Try changing dates, IATA codes, cabin class, etc.'
                  search_criteria:
                    type: string
                    description: Contains the routes that failed to produce flights.
                    example: '[YYZ,YQS]'
        500:
          description: Server Error
      tags:
      - Search
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /search/hotels/{endpoint}:
    post:
      parameters:
      - in: path
        name: endpoint
        required: true
        schema:
          type: string
          enum:
          - preprod
          - prod
        description: Parameter toggles data source production and pre-production endpoints
      summary: Hotel Search
      description: 'This endpoint initiates a hotel search for one location (city), and returns a list of available options. A separate endpoint needs to be called to obtain information about room types, etc.

        '
      operationId: Search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HotelSearchRequest'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelSearchResponse'
        400:
          description: Invalid Input
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: Not a valid city.
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Error code and 0 for success response
                    example: IE44
                  message:
                    type: string
                    description: Contains the error message
                    example: User is not authorized
        206:
          description: Partial Content (no Hotel found)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: 'No availability found: Try changing dates'
        500:
          description: Server Error
      tags:
      - Search
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /search/flight/{endpoint}/flight/:
    post:
      parameters:
      - in: path
        name: endpoint
        required: true
        schema:
          type: string
          enum:
          - preprod
          - prod
        description: Parameter toggles Data Source production and pre-production endpoints
      summary: Search
      description: 'This endpoint triggers farestrucutre for any number of city search

        '
      operationId: Search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlightSearchRequest_2'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlightSearchResponse'
        400:
          description: Invalid Input
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: sting
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: Not a valid alliance. Expected one of *A, *S, *O
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: sting
                    description: Error code and 0 for success response
                    example: IE44
                  message:
                    type: string
                    description: Contains the error message
                    example: User is not authorized
        206:
          description: Partial Content (Flight not found)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: sting
                    description: Error code and 0 for success response
                    example: IE23
                  message:
                    type: string
                    description: Contains the error message
                    example: 'Flight(s) not found: Could not find all the flights required to make up this trip. Try changing dates, IATA codes, cabin class, etc.'
        500:
          description: Server Error
      tags:
      - Search
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
components:
  schemas:
    SegmentFSSearchResponse:
      title: include_itineraries = false and route_flexible = false
      type: object
      properties:
        fare_structure:
          $ref: '#/components/schemas/SegmentSearchResponse'
    BasicSegmentInfo:
      type: object
      properties:
        segment_id:
          type: string
          description: String if one-way, Array of 2 Strings if open-jaw. Used for booking.
          example: 344d73be0d61f820aa9a6ace300742fed0672f2e
        segment_source:
          type: string
          description: Data source that returned the segment.
          example: travelport
        segment_origin_full:
          type: string
          description: Origin of the segment.
          example: London, United Kingdom (LHR)
        segment_destination_full:
          type: string
          description: Destination of the segment.
          example: Berlin, Germany (TXL)
        travel_mode:
          type: string
          description: Mode of travel (air, ground, etc.)
          example: air
        weight:
          type: string
          description: Weight of the segment (time-value considered).
          example: 96
        price:
          type: float
          description: Price of the segment (fare and tax included)
          example: 72.3
        cancel_penalty:
          type: object
          description: Information about cancellation
          properties:
            amount:
              type: float
              description: Cancellation penalty amount (Optional)
              example: 0
            percentage:
              type: float
              description: Cancellation penalty percentage (Optional)
              example: 100
        change_penalty:
          type: object
          description: Information about changing.
          properties:
            amount:
              type: float
              description: Change penalty amount (Optional)
              example: 78
            percentage:
              type: float
              description: Change penalty percentage (Optional)
              example: 0
        flight_type:
          type: string
          description: “open_jaw” or “one_way”
          example: open_jaw
        brands:
          type: string
          description: Brands returned
          example: null
        price_breakdown_with_passenger_type_code:
          $ref: '#/components/schemas/PriceBreakdownWithPassengerTypeCode'
        legs:
          $ref: '#/components/schemas/LegDetails'
        baggage:
          type: object
          description: Contains baggage information.
          properties:
            number_of_pieces:
              type: integer
              description: Number of bags allowed.
              example: 0
        fare_basis_code:
          type: string
          description: Fare Basis Code for the segment.
          example: QUSDSI0E
        fare_rule_key:
          type: string
          description: Fare rule key for the segment
          example: gws-eJxNjs0KwyAQhB8mzH02QdLeFPNzEaGYEnLp+z9GR02hC7qz+w2j3vuR9uRjov+vAZ\/hLMjvCGSMOmk\/4WQjTNMFkoZX4cI1FdwhFeWGe7dmjC5Oati4WUe1cLU77UGsJ7fM+jSq1AI\/EQ7JHJZjjTS5ZnO8EWfop1+XbyuD
        fare_info_ref:
          type: string
          description: Fare Info reference for this segment
          example: 3RxQ6ylJ0BKAhQAbnbAAAA==
        private_fare:
          type: boolean
          description: True if segment is a private fare, otherwise False *Travelport customers only*
          example: false
        private_type:
          type: string
          description: Private type
          example: null
        plating_carrier:
          type: string
          description: Plating carrier of segment
          example: AC
        intermediate_stops:
          type: string
          description: Intermediate stops in the segment
          example: null
        itinerary_type:
          type: string
          description: Type of itinerary
          example: ONE_WAY
        segment_position:
          type: number
          description: Position of segment in response
          example: 0
        virtual_interline:
          type: boolean
          description: 'true if option is a vi solution

            '
          example: true
        vi_solution_id:
          type:
          - string
          - 'null'
          description: "ID mapping VI parts of the option together. Helps finding VI solutions located in same segment position. \nWill be composed of each segment's segment_id joined together with two underscores. For oneway VI this \nwill be two segments, for openjaw VI will be 4 segments. \n"
          example: fc906f39e5151f1bc5ef788b85f3d280770b5b7c__b9ebd56ff7bf07a65a3e4dc70e9551e4ae50f1da
        risk_profile:
          type:
          - float
          - 'null'
          description: The probability of missing the connection and not performing the self-transfer during the VI self-connection (only returned if you have our average delay time module enabled, and only for VI segments with a self transfer)
          example: 8.42
        cancellation_probability:
          type:
          - float
          - 'null'
          description: The probability percentage that this flight will be cancelled (only returned if you have our average delay time module enabled, and only for VI segments with a self transfer)
          example: 7.86
        average_delay_time:
          type:
          - string
          - 'null'
          description: The average delay time of this flight in minutes. A negative value indicates an average early arrival time. (only returned if you have our average delay time module enabled, and only for VI segments with a self transfer)
          example: -5
        self_transfer_time:
          type:
          - string
          - 'null'
          description: The self transfer time in minutes between this flights arrival time and the next segments departure time. (only returned if you have our average delay time module enabled, and only for VI segments with a self transfer)
          example: 134
        is_international:
          type:
          - boolean
          - 'null'
          description: Indicates whether this flight is international. (only returned if you have our average delay time module enabled, and only for VI segments with a self transfer)
          example: true
        itinerary_index:
          type:
          - int
          - 'null'
          description: 'Position of the virtual interlining option in itinerary(PNR). Starts from 0

            '
          example: 0
        vi_position:
          type:
          - integer
          - 'null'
          description: "Position of the virtual interlining option in the VI itinerary. Starts from 0. For OneWay VI will be either of [0, 1]. \nFor OpenJaw VI will be one of [0, 1, 2, 3]\n"
          example: 1
        itinerary_structure:
          type: String
          description: "String Array representing the structure of the trip in terms of one-ways and open-jaw segments. \nFor example: [[0, 1], [3, 4], 2] means there would be three segments. One openjaw with key “01”, \none with key “34” and a one-way with key “2”.\nSee Price Confirm Report segment_ids field for more detail.\n"
          example: '[[0, 1], 2]'
        vi_pattern:
          type: String
          description: 'OpenJaw VI only: String Array representing the structue of the OpenJaw VI solution that was found.'
          example: '[[0, 3], 1, 2]'
        vi_segment_base_price:
          type:
          - float
          - 'null'
          description: The base price of the VI PNR not including taxes and fees.
          example: 106.4
        vi_segment_taxes:
          type:
          - float
          - 'null'
          description: The taxes associated with this VI PNR.
          example: 24.12
        vi_segment_fees:
          type:
          - float
          - 'null'
          description: The fees associated with this individual VI PNR.
          example: 14.56
    SegmentFSSearchResponseWithFlexTrip:
      title: include_itineraries = false and route_flexible = true
      type: object
      properties:
        fare_structure:
          $ref: '#/components/schemas/SegmentFSSearchResponse'
        flex_trip:
          $ref: '#/components/schemas/SegmentFlexTripSearchResponse'
    ItineraryFsSerachResposneWithFlexTrip:
      title: include_itineraries = true and route_flexible = true
      type: object
      properties:
        fare_structure:
          $ref: '#/components/schemas/ItineraryFSSearchResponse'
        flex_trip:
          $ref: '#/components/schemas/ItineraryFlexTripSearchResponse'
    ItineraryInfo:
      allOf:
      - $ref: '#/components/schemas/BasicItineraryInfo'
      - type: object
        properties:
          segments:
            type: array
            description: List of segments in the itinerary
            items:
              $ref: '#/components/schemas/SegmentInfo'
    SegmentInfo:
      allOf:
      - $ref: '#/components/schemas/BasicSegmentInfo'
      - type: object
        properties:
          segment_source:
            type: string
            description: GDS or LCC provider source for segment. Only shown with ‘include_lcc’ request parameter enabled.
            example: travelport
    CredentialInfo:
      type: object
      description: Indicate data source to call and required credentials
      properties:
        data_source:
          description: data source to call.
          required: true
          type: string
          enum:
          - amadeus
          - travelport
          - tripstack
          - mystifly
          example: amadeus
        pcc:
          description: PCC/OfficeID to emulate transactions under. Must have emulation enabled for the relevant Service Bureau PCC used by Trip Ninja to conduct queries. Please contact Trip Ninja to get this set up.
          required: true
          type: string
          example: MEL49f839
        provider:
          description: Fare provider to use.<br  />“1V” - Apollo, “1G” - Galileo, “1P” - Worldspan, “1A” - Amadeus
          required: true
          type: string
          example: 1A
        region:
          description: Parameter toggles which travelport regional service endpoint you hit *Travelport Only*
          required: false
          type: string
          enum:
          - emea
          - apac
          - americas
          - edge
          default: americas
          example: americas
        pcc_currency:
          description: Indicates the currency that the PCC is charged in.
          required: false
          type: string
          example: CAD
        conversion_rate:
          description: The conversion rate that was used to convert from the pcc_currency to the searched currency. In order to convery back to the pcc currency simply use price * (1 / conversion_rate).
          required: true
          type: float
          example: 0.78
    PriceBreakdownWithPassengerTypeCode:
      type: array
      description: Displays the pricing for each passenger type
      items:
        type: object
        properties:
          passenger_type_code:
            type: string
            example: ADT
          base_price:
            type: float
            example: 73.0
          total_price:
            type: float
            example: 132.39
          taxes:
            type: float
            example: 59.39
          tax_breakdown:
            type: array
            description: Breakdown of taxes amount into their categories
            items:
              type: object
              properties:
                category:
                  type: string
                  description: Category
                  example: CA
                amount:
                  type: float
                  description: Amount of tax
                  example: 7.12
    ItinerarySearchResponse:
      title: Search Response
      type: object
      properties:
        path_sequence:
          type: array
          description: An array of IATA codes representing the chronological order of your trip.
          example:
          - LON-CDG
          - CDG-YUL
          - YUL-LON
        currency:
          type: string
          description: Currency
          example: CAD
        itineraries:
          $ref: '#/components/schemas/FSSearchItineraries'
        ErrorDetails:
          $ref: '#/components/schemas/ErrorDetails'
        trip_id:
          type: string
          example: a2cf0bdf2ecca12f8dbbc139af58c99a561f21a1
          description: A unique key used for identification and when booking a trip.
        tn_net_fare_markup:
          type: float
          description: Markup specified by the Trip Ninja Net Fare to be applied at the itinerary level.
          example: 25.0
    FlightSearchRequest:
      title: Request
      type: object
      required:
      - flights
      - travellers
      - credentials
      - currency
      - country_code
      properties:
        flights:
          description: Array of flight legs input. A minimum of 3 legs (2 destinations) is required. The final destination may be different than the initial starting point.
          required: true
          type: array
          items:
            type: object
            required:
            - id
            - from_city
            - start_type
            - to_city
            - end_type
            - departure_date
            properties:
              id:
                type: integer
                description: Flight leg ID
                example: 1
              from_city:
                type: string
                description: Start city/airport IATA code of leg.
                example: YHZ
              start_type:
                type: string
                description: Upper-case letter “C” for city or “A” for airport
                example: C
              to_city:
                type: string
                description: End city/airport IATA code of leg.
                example: LON
              end_type:
                type: string
                description: Upper-case letter “C” for city or “A” for airport
                example: C
              departure_date:
                type: string
                description: 'Departure date for this leg, format: YYYY-MM-DD. Any trailing characters after do not affect the API’s functionality.'
                example: '2019-06-20'
              cabin_class:
                type: string
                description: A unique cabin class can be set for each segment of the trip, otherwise it can be set at the root level.
                example: BC
                required: false
        travellers:
          description: Array of passenger types, values include ‘ADT’, ’MIL’, ’CHD’ and ‘INF’
          required: true
          type: array
          example:
          - ADT
          - ADT
          - CHD
        credentials:
          type: array
          description: list of credentials to use for search
          items:
            $ref: '#/components/schemas/CredentialInfo'
        max_cache:
          default: 24
          description: "Hours to retain data queried from provider to be cached for use in future requests.\nHigher values result in:<br  />\n    1) faster queries as more data is available for re-use<br  />\n    2) lower look-to-book ratios from the GDS perspective which may lower costs<br  />\n    3) less accurate pricing data which may cause issues in AirPriceReq when ticketing.<br  />\nMinimum value is 0.04 hours, maximum value is 720 hours.\nPlease discuss with your Trip Ninja Account Manager if you need\naccess to caching outside these limits.\n"
          required: false
          type: integer
        currency:
          description: Currency to be used for provider query requests in three digit code.
          example: USD
          required: true
          type: string
        source:
          description: 'Metasearch source (For example: skycanner, kayak)'
          example: skyscanner
          type: string
          required: true
        country_code:
          description: 'Country code where search came from (For example: CA, US)'
          example: CA
          type: string
          required: true
        cabin_class:
          default: E
          description: Parameter toggles the permitted cabin class for your query. Alternatively, it can be set for each segment.
          example: E
          required: false
          type: string
        time_value:
          default: 0
          description: 'This parameter helps set the value of a passenger’s time, in

            terms of the currency selected. It is used to trade off flight

            prices versus flight durations. The parameter is in units of

            [currency]/hour. Flight durations are calculated as the difference

            in minutes from the arrival time of the last flight in a leg to

            the departure time of the first flight in the leg.


            True Cost of Flight = [Flight Price] * [time_value/60] * [Flight Duration]


            The itinerary which provides the lowest True Cost of Flight is

            what is returned in the response. If you provide a time_value

            of 0 or do not provide the parameter, it will sort by price.

            '
          required: false
          type: integer
        alliance:
          description: Parameter toggles the preferred alliance for your query. If there are results containing flights from the given alliance, only flights from that alliance will be returned. Otherwise it will return flights from any alliance. *Travelport Only*
          required: false
          type: string
          example: '*A'
        schema:
          default: 40
          description: Toggles which Travelport schema version to use. *Travelport Only*
          required: false
          type: integer
        exclude_carriers:
          description: Parameter toggles a list of carriers to exclude from the query results. This option can not be applied together with the alliance option. They are mutually exclusive.
          required: false
          type: array
          example: []
          items:
            type: string
        permitted_carriers:
          description: Toggles permitted carriers in GDS request
          required: false
          type: array
          example:
          - AC
        no_overnight_layovers:
          description: Toggles whether to return results with no overnight layovers *Travelport Only*
          type: boolean
          default: false
        stops:
          description: Toggles number of stop for GDS request *Travelport Only*
          default: any
          type: string
          enum:
          - any
          - direct
          - '1'
          - '2'
        baggage:
          description: Toggles minimum number of bags included with flights for GDS request *Travelport Only*
          default: any
          type: string
          enum:
          - any
          - '1'
          - '2'
        refundable:
          description: Parameter toggles query to only return fully refundable flights. *Travelport Only*
          default: false
          type: boolean
        num_results:
          description: Parameter sets the number of segments in the response *Travelport Only*
          default: 50
          type: integer
          minimum: 50
          maximum: 5000
        include_lcc:
          description: Enable a hybrid search of both GDS and low cost carrier content. This requires prior setup with Trip Ninja and an agreement with an LCC provider.
          default: []
          required: false
          type: array
          example:
          - tripstack
          items:
            type: string
        include_itineraries:
          description: Enables itineraries to be constructed and returned from segments found for the requested trip. Changes the response structure, see examples for details.
          default: false
          type: boolean
        should_compress_itinerary:
          description: "Return only a segment_id, segment_source, price, weight for a segment inside an Itineraries object. A segment_details list will now be returned with the full segment details, \nthe segment_id should be used to map a segment to the full details. Only works with include_itineraries also passed as true. Significantly reduces response size.\nIf virtual_interlining is passed as true, only segment_id, segment_souce and price are returned. Additionally for successfully virtually_interlined options a \nvi_position field is returned. This is the segments position in the virtually interlined itinerary. \n"
          default: false
          type: boolean
        mix_structures:
          description: Return mix of results with the best multi-pnr structure and single-pnr structure.
          default: false
          type: boolean
        single_pnr:
          description: Return single-pnr structures in addition to the results returned. If there are too many results, it will be truncated to num_results.
          default: false
          type: boolean
        multi_pnr_mix:
          description: Return mix of single-pnr and all multi-pnr structures. include_itineraries and mix_structures needs to be passed as True for this to work
          default: false
          type: boolean
        virtual_interlining:
          description: Add virtual interlining to the search so that the results are a mix of standard search results and virtual interlining results.
          default: false
          type: boolean
        markup_by_itinerary:
          description: Add itinerary markup to the search result and set trip markup to 0
          default: false
          type: boolean
        route_flexible:
          description: 'Activates FlexTrip for this search. FlexTrip allows users to express their trip parameters without having to pre-specify a route, they simply state the number of nights in each destination, any destinations that must be visited first or last, and search for the best route.

            With route_flexible enabled the normal farestructure response is returned and an additional flex_trip object is returned. The flex_trip object is structurally the same as a normal fare_structure object, however the content will be the best alternative route found. Sample responses can be found in the Response Samples section.

            Requires a 3+ flight search.'
          default: false
          type: boolean
    ErrorDetails:
      description: When an error occurs, there will be a list of error codes detailing the issue(s). For more inf

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webjet/refs/heads/main/openapi/webjet-search-api-openapi.yml