Webjet · Arazzo Workflow

Trip Ninja — search, confirm price, book and ticket

Version 1.0.0

End-to-end flight retailing against the Trip Ninja surface published in Trip Ninja's own GitHub documentation repository (https://github.com/trip-ninja-inc/trip_ninja_api_docs, last updated 2023-12-14). Authored by API Evangelist on 2026-07-28; every operationId below exists verbatim in the referenced specification. This surface is NOT documented on the current developer hub — treat availability as unverified and confirm with Trip Ninja before building against it. Access requires a commercial agreement, Trip Ninja-issued credentials and an allow-listed source IP.

1 workflow 5 source APIs 1 provider
View Spec View on GitHub TravelAustraliaOTAAviationBookingDistributionFlight SearchCar RentalNew ZealandTravel TechnologyArazzoWorkflows

Provider

webjet

Workflows

search-price-book-ticket
Search flights, confirm the price, create the booking, queue it and issue the ticket.
The four money-relevant steps are separated deliberately. CreateBooking and Ticket are irreversible and cost real money; there is no idempotency key anywhere in this API, so neither step may be retried automatically.
5 steps inputs: agency, bookingRequest, endpoint, priceConfirmRequest, queueRequest, searchRequest, ticketingRequest outputs: booking, ticket
1
search
Shop for itineraries.
2
confirm-price
Re-price the selected itinerary. Air prices move between shopping and booking — never skip this.
3
create-booking
Consequential and irreversible. Requires explicit human approval. Do NOT retry on an ambiguous response — this API publishes no idempotency key.
4
queue-for-ticketing
Place the booking on the ticketing queue.
5
ticket
Issue the ticket. Irreversible and chargeable. Requires explicit human approval.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Trip Ninja — search, confirm price, book and ticket
  version: 1.0.0
  description: >-
    End-to-end flight retailing against the Trip Ninja surface published in Trip Ninja's own GitHub
    documentation repository (https://github.com/trip-ninja-inc/trip_ninja_api_docs, last updated
    2023-12-14). Authored by API Evangelist on 2026-07-28; every operationId below exists verbatim in
    the referenced specification. This surface is NOT documented on the current developer hub — treat
    availability as unverified and confirm with Trip Ninja before building against it. Access
    requires a commercial agreement, Trip Ninja-issued credentials and an allow-listed source IP.
  x-realizes-capability-ids:
  - BC-4020
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4020
      capability_name: Reservation & Booking Management
      spec: webjet-book-api-openapi.yml
      confidence: 0.88
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: bookApi
  url: ../openapi/webjet-book-api-openapi.yml
  type: openapi
- name: priceApi
  url: ../openapi/webjet-price-api-openapi.yml
  type: openapi
- name: queueApi
  url: ../openapi/webjet-queue-api-openapi.yml
  type: openapi
- name: searchApi
  url: ../openapi/webjet-search-api-openapi.yml
  type: openapi
- name: ticketApi
  url: ../openapi/webjet-ticket-api-openapi.yml
  type: openapi
workflows:
- workflowId: search-price-book-ticket
  summary: Search flights, confirm the price, create the booking, queue it and issue the ticket.
  description: >-
    The four money-relevant steps are separated deliberately. CreateBooking and Ticket are
    irreversible and cost real money; there is no idempotency key anywhere in this API, so neither
    step may be retried automatically.
  inputs:
    type: object
    required: [endpoint, searchRequest, priceConfirmRequest, bookingRequest]
    properties:
      endpoint:
        type: string
        description: The content-source endpoint path segment configured for your account (e.g. travelport).
      agency:
        type: string
      searchRequest:
        type: object
        description: FlightSearchRequest body — segments with IATA codes, dates, cabin class and travellers.
      priceConfirmRequest:
        type: object
        description: PriceConfirmRequest body built from the selected itinerary.
      bookingRequest:
        type: object
        description: CreateBookingRequest body — passengers, itinerary, credentials.
      ticketingRequest:
        type: object
        description: TicketingRequest body.
      queueRequest:
        type: object
        description: AddBookingToTicketingQueueRequest body.
  steps:
  - stepId: search
    description: Shop for itineraries.
    operationId: $sourceDescriptions.searchApi.FlightSearch
    parameters:
    - name: endpoint
      in: path
      value: $inputs.endpoint
    requestBody:
      contentType: application/json
      payload: $inputs.searchRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      searchResponse: $response.body
  - stepId: confirm-price
    description: Re-price the selected itinerary. Air prices move between shopping and booking — never skip this.
    operationId: $sourceDescriptions.priceApi.PriceConfirm
    parameters:
    - name: endpoint
      in: path
      value: $inputs.endpoint
    requestBody:
      contentType: application/json
      payload: $inputs.priceConfirmRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      priceConfirmResponse: $response.body
  - stepId: create-booking
    description: >-
      Consequential and irreversible. Requires explicit human approval. Do NOT retry on an ambiguous
      response — this API publishes no idempotency key.
    operationId: $sourceDescriptions.bookApi.CreateBooking
    parameters:
    - name: endpoint
      in: path
      value: $inputs.endpoint
    requestBody:
      contentType: application/json
      payload: $inputs.bookingRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      bookingResponse: $response.body
  - stepId: queue-for-ticketing
    description: Place the booking on the ticketing queue.
    operationId: $sourceDescriptions.queueApi.AddBookingToTicketingQueue
    requestBody:
      contentType: application/json
      payload: $inputs.queueRequest
    successCriteria:
    - condition: $statusCode == 200
  - stepId: ticket
    description: Issue the ticket. Irreversible and chargeable. Requires explicit human approval.
    operationId: $sourceDescriptions.ticketApi.Ticket
    requestBody:
      contentType: application/json
      payload: $inputs.ticketingRequest
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      ticketResponse: $response.body
  outputs:
    booking: $steps.create-booking.outputs.bookingResponse
    ticket: $steps.ticket.outputs.ticketResponse

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/webjet-tripninja-search-price-book-ticket"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.