Webjet Book API

The Book API from Webjet — 5 operation(s) for book.

Operations 5

GET /book/list/?agency={agency}&user={agent_email}&offset={offset}&limit={limit} List Bookings #
GET /book/trip/{super_trip_id}/?agency={agency} Booking Detail #
POST /book/{endpoint}/ Create Booking #
DELETE /book/ Cancel Booking #
POST /book/flight/{endpoint}/ Create Booking #

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-book-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-book-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Webjet Book API
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Book across 2 of this provider''s published API definitions: webjet-tripninja-pricing-booking-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: Book
paths:
  /book/list/?agency={agency}&user={agent_email}&offset={offset}&limit={limit}:
    get:
      parameters:
      - in: query
        name: agency
        schema:
          type: string
        description: 'Travel agency id for which to list bookings from. Either this or agent_email should be passed. This parameter is incompatible with `agent_email`.

          '
        example: 9238812-2131233-ee213123
      - in: query
        name: agent_email
        schema:
          type: string
        description: 'Email address of the travel agent to list bookings from. Either this or agent_email should be passed. This parameter is incompatible with `agency`.

          '
        example: agent@travelagency.com
      - in: query
        name: offset
        schema:
          type: integer
        description: The number of items to skip before starting to collect the result set
        example: 100
      - in: query
        name: limit
        schema:
          type: integer
        description: The numbers of items to return
        example: 10
      summary: List Bookings
      description: Get a list of all bookings for travel agency or agent.
      operationId: ListBooking
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBookingResponse'
        400:
          description: Unable to get bookings
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: IE2200
                  message:
                    type: string
                    example: Invalid agency/agent entered
      tags:
      - Book
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /book/trip/{super_trip_id}/?agency={agency}:
    get:
      parameters:
      - in: path
        name: super_trip_id
        schema:
          type: string
        description: A unique key used to identify an entire super trip which incorporates all inclusive bookings (i.e. Cars, Hotels, other Flights). The key can be used to search and price flights again and place them into the same super trip.
        example: 5df23dd9s72hne223d299err2323423r2342r221
      - in: query
        name: agency
        schema:
          type: string
        description: 'Travel agency for which to list bookings from. Either this or agent_email should be passed. This parameter is incompatible with `agent_email`.

          '
        example: tripninja
      summary: Booking Detail
      description: Retrieve a booking details
      operationId: BookingDetail
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBookingDetailsResponse'
        400:
          description: Unable to retrieve booking information
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: IE38
                  message:
                    type: string
                    example: Trip ID not found
      tags:
      - Book
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /book/{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: Create Booking
      description: When a trip is to be booked, send a request to the endpoint /book/ to create the Universal Record and associated PNR's for the trip. The booking can then be placed on the agency's ticketing queue.
      operationId: CreateBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBookingRequest'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  super_trip_id:
                    description: A unique key used to identify an entire super trip which incorporates all inclusive bookings (i.e. Cars, Hotels, Flights).
                    type: string
                    required: true
                    example: 5df23dd9s72hne223d299err2323423r2342r221
                  ur_locator_codes:
                    type: json
                    description: Map of itinerary_reference and Unique Identifier of a Universal Record.
                    example:
                      '1': D917A841
                      2: 8YYE22P0
                      '3': 8YYE22P0
                  pnr_numbers:
                    type: json
                    description: Map of itinerary_reference and PNR number of a booking. For consolidated tickets the PCC of the data source will be the key.
                    example:
                      '1': TH2H52
                      '2': UG22WH
                      '3': UG22WH
                  consolidated_tickets:
                    type: json
                    description: A breakdown of which itineraries are stored under which PNR.
                    example:
                      HC4C:
                      - '1'
                      Y4E5:
                      - '2'
                      - '3'
                  booked_hotels:
                    type: array
                    description: A list of the hotels booked.
                    items:
                      $ref: '#/components/schemas/BookedHotelResponse'
        400:
          description: Unable to create booking
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: IE46
                  message:
                    type: string
                    example: trip has already been booked
      tags:
      - Book
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /book/:
    delete:
      summary: Cancel Booking
      description: To cancel a booking, send a request with the trip_id and ur_locator_code.
      operationId: CancelBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelRequest'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: Success
                  message:
                    type: string
                    example: Trip was successfully cancelled
        400:
          description: Unable to cancel booking
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: IE38
                  message:
                    type: string
                    example: Trip ID not found
      tags:
      - Book
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
  /book/flight/{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: Create Booking
      description: When a trip is to be booked, send a request to the endpoint /book/ to create the Universal Record and associated PNR's for the trip. The booking can then be placed on the agency's ticketing queue.
      operationId: CreateBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBookingRequest_2'
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  ur_locator_codes:
                    type: json
                    description: Map of itinerary_reference and Unique Identifier of a Universal Record.
                    example:
                      '1': D917A841
                  pnr_numbers:
                    type: json
                    description: Map of itinerary_reference and PNR number of a booking.
                    example:
                      '1': TH2H52
        400:
          description: Unable to create booking
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: IE46
                  message:
                    type: string
                    example: trip has already been booked
      tags:
      - Book
    servers:
    - url: https://preprodapi.tripninja.io
      description: Pre-Production server
components:
  schemas:
    passenger:
      title: Primary passenger
      type: object
      properties:
        first_name:
          description: First Name
          type: string
          example: Andres
        last_name:
          description: Last Name
          type: string
          example: Collart
    credentials:
      type: object
      description: Indicate data source to call and required credentials
      properties:
        data_source:
          $ref: '#/components/schemas/data_source'
        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
          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
    flights:
      type: object
      description: flight information
      required:
      - origin
      - departure_time
      - flight_number
      - destination
      - booking_code
      - carrier
      - key
      properties:
        key:
          type: string
          description: Leg’s string identifier
          required: true
          example: oHzo6pBAAA/B1d6hPLAAAA==
        origin:
          type: string
          description: IATA code of the flight origin
          required: true
          example: LHR
        destination:
          type: string
          description: IATA code of the flight destination
          required: true
          example: CDG
        booking_code:
          type: string
          description: The airline booking code that describes the flight cabin class
          required: true
          example: X
        cabin_class:
          type: string
          description: Leg’s cabin class *Travelport customers only*
          example: Economy
        carrier:
          type: string
          description: Leg's carrier code
          required: true
          example: TS
        operating_carrier:
          type: string
          minLength: 2
          maxLength: 2
          description: Operating airline of the flight.
          example: AC
        flight_time:
          type: integer
          description: Flight duration in minutes
          example: 475
        flight_number:
          type: string
          description: Leg's flight number
          required: true
          example: 475
        departure_time:
          type: DateTime
          format: yyyy-MM-ddTHH:mm:ss
          description: Departure time of the flight
          required: true
          example: '2019-04-07T13:15:00'
        arrival_time:
          type: DateTime
          description: Arrival time of the flight
          format: yyyy-MM-ddTHH:mm:ss
          example: '2019-04-07T15:10:00'
        brand_identifier:
          type: string
          description: Identifier for the brand
          required: true
          example: ECONOFLEX
    BookedHotelResponse:
      title: Response
      type: object
      properties:
        hotel_trace_id:
          type: string
          example: ndsf6sjf6sdf7sdf6
          description: The specific hotel id.
        booking_reference:
          type: string
          example: JJ8rrO9
          description: The booking reference for the hotel.
        ur_locator_code:
          type: string
          description: Unique Identifier of a Universal Record.
          example: AXY67G
        provider_locator_code:
          type: string
          description: The provider locator code that can be used to update the hotel later on.
          example: D2eEr3E
        check_in_date:
          type: string
          format: date
          description: 'Date of check-in. format: YYYY-MM-DD. Post-booking this can be used to sort the reservations.'
        booking_success:
          type: string
          enum:
          - success
          - fail
          description: Provides status of the hotel, indicating whether this individual hotel booking was a success.
          example: success
    segment_response:
      type: object
      description: The segment which is a part of an openjaw or a oneway
      required:
      - segment_id
      - baggage
      - flight_details
      properties:
        segment_id:
          type: string
          description: Segment_id for the group
          example: 14c9e2e5c95a5bf0f9f7712de24348e6aba88c32
        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.
          example: fc906f39e5151f1bc5ef788b85f3d280770b5b7c__b9ebd56ff7bf07a65a3e4dc70e9551e4ae50f1da
        itinerary_index:
          type:
          - int
          - 'null'
          description: 'position of the virtual interlining option in itinerary(PNR). Starts from 0

            Helps ordering parts of the VI solution in the itinerary

            '
          example: 0
        vi_position:
          type:
          - integer
          - 'null'
          description: 'Shows which part of the segment option is this. Helps order parts of the VI solution in the same segment

            Starts from 0

            '
          example: 0
        baggage:
          $ref: '#/components/schemas/baggage'
        flight_details:
          type: array
          description: An array of flights
          items:
            $ref: '#/components/schemas/booked_flights'
        additional_details:
          $ref: '#/components/schemas/additional_details'
        brand:
          $ref: '#/components/schemas/brand'
    CreateBookingRequest:
      title: Request
      type: object
      required:
      - super_trip_id
      - hotel_trace_ids
      - passengers
      - billing
      - endpoint
      - segment_additional_details
      - additional_markup
      properties:
        super_trip_id:
          description: A unique key used to identify an entire super trip which incorporates all inclusive bookings (i.e. Cars, Hotels, Flights).
          type: string
          required: true
          example: 5df23dd9s72hne223d299err2323423r2342r221
        hotel_trace_ids:
          type: array
          description: A list of the holtel trace ids for all the hotels in the booking. If there are no hotels in this booking then send as an empty array.
          example:
          - ndsf6sjf6sdf7sdf6
          - DDsf9Qj96sPP7sd9U
        add_to_ticketing_queue:
          type: boolean
          example: true
          default: false
          description: Set to True to add booking to agency's ticketing queue
        ticketing_queue:
          type: string
          description: Ticketing queue on which to place the PNR, must be set if add_to_ticketing_queue is True
          example: '01'
        agent_email:
          description: Email address of the travel agent creating the booking.
          required: false
          type: string
          example: agent@travelagency.com
        agency:
          description: Travel agency to record the booking under.
          required: false
          type: string
          example: tripninja
        passengers:
          description: An array of passenger details.
          required: true
          type: array
          items:
            type: object
            required:
            - first_name
            - last_name
            - date_of_birth
            - gender
            - phone_number
            - passenger_type
            - email
            properties:
              title:
                type: string
                description: The customer's title, values include 'Mr', 'Mrs', 'Ms'
                example: Mr
              first_name:
                type: string
                required: true
                description: The customer's first name.
                example: FirstName
              last_name:
                type: string
                required: true
                description: The customer's last name.
                example: LastName
              date_of_birth:
                type: string
                required: true
                description: The customer's date of birth.
                example: '2005-03-10'
              gender:
                type: string
                required: true
                description: The single digit code for the customer's gender.
                example: M
              email:
                type: string
                required: true
                description: The email of the passenger - only required for the primary passenger
                example: email@email.com
              phone_number:
                type: string
                required: true
                description: The customer's phone number.
                example: '9022225555'
              passport_country:
                type: string
                description: The customer's passport country of issue.
                example: AZ
              passport_number:
                type: string
                description: The customer's passport number.
                example: QX12345678
              passport_expiration:
                type: string
                description: The customer's passport expiration date.
                example: 2020-10
              passenger_type:
                type: string
                required: true
                description: The customer's passenger type. Values include 'ADT', 'MIL', 'CHD' and 'INF'.
                example: ADT
              frequent_flyer_cards:
                $ref: '#/components/schemas/frequent_flyer_cards'
              meals:
                description: The passenger's meals details
                type: array
                items:
                  type: object
                  properties:
                    itinerary_reference:
                      description: The itinerary reference to apply the meal to.
                      type: string
                      example: '1'
                    meal_choice:
                      description: Chosen meal
                      type: string
                      enum:
                      - AVML
                      - BBML
                      - BLML
                      - CHML
                      - DBML
                      - FPML
                      - GFML
                      - HNML
                      - JPML
                      - KSML
                      - LCML
                      - LFML
                      - LSML
                      - MOML
                      - NFML
                      - NLML
                      - OBML
                      - ORML
                      - RVML
                      - SFML
                      - SPML
                      - VGML
                      - VLML
                      - VOML
                      example: GFML
              additional_checked_bags:
                description: The passenger's additional baggage details
                type: array
                items:
                  type: object
                  description: Excess Baggage
                  properties:
                    itinerary_reference:
                      description: The itinerary reference to apply the card to.
                      type: string
                      example: '1'
                    applicable_bags:
                      type: array
                      description: List of additional bags for this itinerary
                      items:
                        type: object
                        properties:
                          baggage_type:
                            type: string
                            description: Describe which checked bag is this price applicable to
                            example: 1stChecked
                          base_price:
                            type: number
                            description: Base price of the checked bag
                            example: 40.0
                          total_price:
                            type: number
                            description: Total price of the checked bag
                            example: 40.0
                          restriction:
                            type: string
                            description: Information about baggage restrictions
                            example: UPTO50LB/23KG AND UPTO62LI/158LCM
                          additional_service_reference:
                            type: string
                            description: Reference for the additional baggage option
                            example: C9O
              additional_carry_on_bags:
                description: The passenger's carry on bag details
                type: array
                items:
                  type: object
                  description: Excess Baggage
                  properties:
                    itinerary_reference:
                      description: The itinerary reference to apply the card to.
                      type: string
                      example: '1'
                    applicable_bags:
                      type: array
                      description: List of additional bags for this itinerary
                      items:
                        type: object
                        properties:
                          baggage_type:
                            type: string
                            description: Describe which carry on bag is this price applicable to
                            example: 1
                          base_price:
                            type: number
                            description: Base price of the bag
                            example: 10.0
                          total_price:
                            type: number
                            description: Total price of the bag
                            example: 10.0
                          restriction:
                            type: string
                            description: Information about baggage restrictions
                            example: PERSONAL ITEM
                          additional_service_reference:
                            type: string
                            description: Reference for the additional baggage option
                            example: C9O
        billing:
          type: object
          description: Billing information for the booking.
          required:
          - email
          properties:
            email:
              type: string
              required: true
              description: The contact and billing email address.
              example: email.address@email.com
            payment_included:
              type: boolean
              description: Set to True if payment information is included in booking.
              default: false
              example: true
            payment_info:
              type: object
              description: Credit card payment information for booking.
              properties:
                card_type:
                  type: string
                  description: The two digit credit card code.
                  example: VI
                cardholder_name:
                  type: string
                  description: The full name of the cardholder as it appears on the card.
                  example: John David Smith
                card_number:
                  type: string
                  description: The credit card number.
                  example: '4520000000000000'
                card_cvv:
                  type: string
                  description: The three to four digit card security or CVV code.
                  example: '345'
                card_expiration_date:
                  type: string
                  description: The card's expiry date.
                  example: 2021-10
        segment_additional_details:
          type: object
          description: Additional flight and fare family details.
          required:
          - additional_details
          - brands
          properties:
            additional_details:
              $ref: '#/components/schemas/additional_details'
            brands:
              $ref: '#/components/schemas/brand'
        additional_markup:
          type: float
          description: Additional markup to be applied to the booking price. Must be positive.
          example: 15.0
        consolidate_ticket:
          type: boolean
          description: Indicates whether all bookings from one GDS are stored under a single UR locator code *Travelport only*.
          example: true
    CancelRequest:
      title: Request
      type: object
      required:
      - super_trip_id
      properties:
        super_trip_id:
          description: A unique key used to identify an entire super trip which incorporates all inclusive bookings (i.e. Cars, Hotels, other Flights). The key can be used to search and price flights again and place them into the same super trip.
          type: string
          example: 5df23dd9s72hne223d299err2323423r2342r221
    segment_type:
      type: string
      enum:
      - one_way
      - open_jaw
      description: Type of flight
    trip_pricing_breakdown_additional:
      type: object
      description: Breakdown of confirmed prices including taxes, fees, and markup for the trip.
      properties:
        confirmed_total_price:
          type: float
          description: Total price of the trip after price confirmation (base_fare + taxes + fees). Does not include markup.
          example: 455.68
        original_total_price:
          type: float
          description: Original price of trip from search request - does not include markup.
          example: 455.61
        base_fare:
          type: float
          description: Confirmed base_fare price for the trip.
          example: 370.04
        taxes:
          type: float
          description: Confirmed taxes for the trip.
          example: 85.64
        fees:
          type: float
          description: Confirmed fees for trip *Travelport customers only*
          example: 0.0
        markup:
          type: float
          description: Trip Ninja provided markup amount
          example: 20.0
        currency:
          type: string
          description: Currency in which trip was priced
          example: USD
        additional_markup:
          type: float
          description: Additional markup to be applied to the booking price.
          example: 15.0
        ancillary_total:
          type: float
          description: Total price of all ancillaries.
          example: 30.0
    data_source:
      description: Data Source to call.
      required: true
      type: string
      enum:
      - amadeus
      - travelport
      example: amadeus
    itinerary_response:
      type: object
      description: The itinerary to be priced
      required:
      - itinerary_reference
      - plating_carrier
      - credentials
      - segments
      properties:
        itinerary_reference:
          type: integer
          description: itinerary reference id within the itinerary. Always starting from 1
          example: 1
        plating_carrier:
          type: string
          description: The airline that a ticket will be issued on behalf of.
          required: true
          example: WS
        credentials:
          $ref: '#/components/schemas/credentials'
        itinerary_type:
          $ref: '#/components/schemas/segment_type'
        itinerary_markup:
          type: number
          default: 0
          description: Markup for the itinerary. Trip markup and Itinerary markup parameters are mutualy exclusive
          example: 7
        segments:
          type: array
          description: The segments chosen for the trip
          items:
            $ref: '#/components/schemas/segment_response'
        base_fare:
          type: float
          description: The confirmed base fare for this itinerary of the pricing response.
          example: 115.5
        taxes:
          type: float
          description: The confirmed taxes associated with this itinerary of the pricing response.
          example: 34.55
        fees:
          type: float
          description: The confirmed feess associated with this itinerary in the pricing response.
          example: 12.99
    brand:
      type: array
      description: An array of brands relating to each flight of the segment
      items:
        type: object
        properties:
          brand_description:
            description: The name or brand descriptor.
            type: string
            example: Econo-Flex
          brand_services:
            type: object
            description: Brand Services
            properties:
              checked_baggage:
                description: Are checked bags permittied on this ticket.
                type: boolean
                example: true
              meals_and_beverages:
                description: Are meals and beverages provided as part of this ticket.
                type: boolean
                example: true
              rebooking:
                description: Rebooking available on this ticket.
                type: string
                example: $
              refund:
                description: Refundability of the ticket.
                type: string
                example: $
              seat_assignment:
                description: Seat assignment availability on this ticket.
                type: string
                example: $

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