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-results-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: 3.2.0
info:
version: 1.0.0
title: Trip Ninja MSDP API Documentation Results API
description: "<h2>Introduction</h2>\nTrip Ninja uses a REST API with requests and responses in JSON format. For development and testing, the pre-production servers\nare to be used. Once ready for live use, access to the production servers will be provided. All search endpoints have both production\nand pre-production endpoints - these correspond to the GDS’s production and pre-production services, and can be used as desired.<br />\n<h2>Trip Ninja API URLs</h2>\n\nPre-Production: https://preprodapi.tripninja.io\n\nFor security, Trip Ninja’s servers are only accessible from whitelisted IPs. Please contact your account manager to whitelist IPs you\nwill be using.\n\nBefore you start ensure that:<br />\n - IP addresses have been provided to be whitelisted for our servers.<br />\n - PCC / OfficeID emulation via Trip Ninja’s PCC/OfficeID has been set up.<br />\n - API username and password have been provided by Trip Ninja.<br />\n\n<h2>MSDP</h2>\nMulti Stop Dynamic Packaging (MSDP) provides an alternative to traditional, static packaging. \nIt allows users to build packages as they go. While users search for multi-destination flights, \nMSDP will find eligible hotels with which to bundle.\n\n<h2>Authentication</h2>\nTrip Ninja uses Basic Authentication standards. Simply encode your username and password string using base64 and pass it in the\nauthorization headers. See the python example below on how this is done. In the example, the payload and API endpoint url are not\nshown.\n\nPython Example:\n\n<pre>\nimport base64\nauth = base64.b64encode(\"USERNAME:PASSWORD\")\nheaders = {\n 'authorization': \"Basic \"+ auth,\n}\nresponse = requests.post(url, headers=headers, data=json.dumps(payload))\n</pre>\n"
x-logo:
url: https://s3.amazonaws.com/tn-api-docs/trip_ninja_logo.png
altText: Trip Ninja logo
href: https://www.tripninja.io/
servers:
- url: https://preprodapi.tripninja.io
description: Pre-Production server
tags:
- name: Results
paths:
? /results/hotels/?hotel_trace_id={hotel_trace_id}&rating={rating}&area={area}&min_price={min_price}&max_price={max_price}&min_distance={min_distance}&max_distance={max_distance}&hotel_chain={hotel_chain}&amenities={amenities}&sort_by={sort_by}
: get:
parameters:
- in: path
name: hotel_trace_id
required: true
schema:
type: string
example: 4f499298b303c55a1ee522118afce28abe2f68e4
description: Parameter to retrieve the hotel results
- in: path
name: rating
schema:
type: array of strings or string
example: 1
description: Parameter to filter the hotel results
- in: path
name: area
schema:
type: array of strings or string
example: Bedford
description: Parameter to filter the hotel results
- in: path
name: min_price
schema:
type: string
example: 100
description: Parameter to filter the hotel results
- in: path
name: max_price
schema:
type: string
example: 1000
description: Parameter to filter the hotel results
- in: path
name: min_distance
schema:
type: string
example: 10
description: Parameter to filter the hotel results (in km)
- in: path
name: max_distance
schema:
type: string
example: 100
description: Parameter to filter the hotel results (in km)
- in: path
name: hotel_chain
schema:
type: array of strings or string
example: WA
description: Parameter to filter the hotel results
- in: path
name: amenities
schema:
type: array of strings or string
example: Air Conditioner,Wifi
description: Parameter to filter the hotel results
- in: path
name: sort_by
schema:
type: string
example: price_low_to_high
description: "Parameter to filter the hotel results<br />\nAvailable Options:<br />\n `closest`<br />\n `price_low_to_high`<br />\n `price_high_to_low`<br />\n `rating_high_to_low`<br />\n `rating_low_to_high`<br />\n"
summary: MSDP Get Hotel Results
description: 'This endpoint retrieves a specific MSDP hotel search result from the prior MSDP search
Example URL: `/results/hotels/?hotel_trace_id=4f499298b303c55a1ee522118afce28abe2f68e4&rating=1,2,3&area=Bedford,Dartmouth&min_price=100&max_price=1000&min_distance=2&max_distance=50&hotel_chain=WA&amenities=Air Conditioning,Wifi&sort_by=closest`
'
operationId: MSDPGetHotelResults
responses:
200:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SearchComponents/Hotel/ShouldIncludeHotelResultsResponse/items'
400:
description: Invalid Input
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Contains the error message
example: hotel_trace_id is not found
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
500:
description: Server Error
tags:
- Results
components:
schemas:
SearchComponents:
Hotel:
ShouldIncludeHotelResultsResponse:
description: Consists of all the hotel results
type: array
items:
type: object
properties:
id:
description: An identifier to refer to the flight index
type: int
example: 1
hotel_trace_id:
description: An identifier to refer to the hotel for searching room availability
type: string
example: 4f499298b303c55a1ee522118afce28abe2f68e4
hotels:
description: A list of hotels available based on the search request details.
type: array
items:
type: object
properties:
location_iata:
description: The location of the hotel.
type: string
example: LON
location_full:
description: The full location name as provided by the GDS.
type: string
example: London, England
rating:
description: The rating of the hotel.
type: object
properties:
rating:
description: The hotel rating
type: int
example: 4
rating_provider:
description: The provider of the rating.
type: string
example: Giata
rating_maximum:
description: The best possible rating.
type: int
example: 10
rating_minimum:
description: The worst possible rating.
type: int
example: 0
hotel_chain:
description: The refence for the hotel chain.
type: string
example: GI
hotel_code:
description: The reference for the hotel code
type: string
example: '35573'
hotel_name:
description: The name of the hotel
type: string
example: Cambridge Suites Hotel Halifax
minimum_charge:
description: The minimun total for the requested search available (in the currency provided in the search request)
type: float
example: 400.32
maximum_charge:
description: The maximum total priced room option available (in the currency provided in the search request)
type: float
example: 780.65
address:
type: object
description: Contains hotel address details
properties:
street_address:
description: The street address of the hotel.
type: string
example: 1583 Brunswick St, Halifax, NS B3J 3P5
longitude:
description: The longitude of the hotel.
type: float
example: 44.64511447836071
lattitude:
description: The lattitude of the hotel.
type: float
example: -63.575245615440565
distance_from_reference_point_km:
description: The distance that the hotel is from the reference submitted in the search.
type: float
example: 7.5
phone_number:
type: str
description: The contact phone number for the hotel.
example: +1 902-420-0555
ammenities:
type: array
description: A list of the amenities provided at this hotel.
items:
type: object
properties:
amenity_type:
type: string
description: The amenity type, can be either HA (Hotel Amenity) or RA (Room amenity)
example: HA
amenity_title:
type: string
description: A title or descriptor of the amenity provided.
example: High speed internet connection
credential_info:
$ref: '#/components/schemas/SearchComponents/Credentials'
conversion_rate:
description: The conversion rate to get the price in the currency requested.
type: float
example: 0.45
neighbourhood:
description: The neighbourhood or locality of the hotel.
type: string
example: Saint Boniface
hotel_itinerary_reference:
$ref: '#/components/schemas/SearchComponents/Hotel/HotelItineraryReference'
next_result_reference:
$ref: '#/components/schemas/SearchComponents/Hotel/HotelNextResultReference'
hotels_media:
description: A list of media items for all the hotels returned in the search.
type: array
items:
type: object
properties:
hotel_chain:
description: The refence for the hotel chain.
type: string
example: GI
hotel_code:
description: The reference for the hotel code
type: string
example: '35573'
hotel_media_items:
description: A selection of media items for the above referenced hotel.
type: array
items:
type: object
properties:
title:
description: The title / descriptor of the photos contained in this media item.
type: string
example: Front desk.
large:
description: The url for the image of the above titled part of the hotel of size large.
type: string
example: https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/45/0b/f8/lobby.jpg
thumbnail:
description: The url for the image of the above titled part of the hotel of size thumbnail.
type: string
example: https://media-cdn.tripadvisor.com/media/photo-m/1280/1b/45/0b/f8/lobby.jpg
hotel_neighbourhoods:
description: The top 5 most common neighbourhoods found in the hotel search location, ordered from most common to least common.
type: array of strings
example:
- St. Vital Center
- Downtown
- River Heights
- Saint Boniface
- Fort Garry
NotShouldIncludeHotelResultsResponse:
description: Consists of all the hotel results. If should_include_hotel_results is false, only the hotel_trace_id will be returned.
type: array
items:
type: object
properties:
id:
description: An identifier to refer to the flight index
type: int
example: 1
hotel_trace_id:
description: An identifier to refer to the hotel for searching room availability
type: string
example: 4f499298b303c55a1ee522118afce28abe2f68e4
HotelLocation:
description: location (city, airport, or reference point) to search for hotels in.
type: object
required:
- type
- IATA
properties:
city_name:
description: The city name for the reference point.
type: string
example: Ottawa
country:
description: The 2-letter country code for the reference point. Required for reference point.
type: string
example: FR
country_name:
description: The full country name for the reference point.
type: string
example: France
IATA:
description: The IATA code for the city/airport, or nearest IATA for the reference point
type: string
example: PAR
name:
description: The IATA code for the city/airport, or nearest IATA for the reference point. Required for reference point.
type: string
example: Eiffel Tower
region:
description: The state/province for the reference point. Only required for reference point if there are multiple reference points with same name in the same country.
type: string
example: NS
type:
type: string
description: Defines whether it's a city ('C'), airport ('A'), or reference point ('R')
example: R
HotelRooms:
description: List of guest info for 1 room required to make hotel search requests.
type: array
items:
type: object
required:
- num_adults
- num_children
- nationality
- country_of_residence
properties:
num_adults:
description: Number of adults staying in the room.
type: int
example: 2
num_children:
description: Number of children staying in the room, if none use 0.
type: int
example: 3
children_age_list:
description: List of ages for children staying in room. Optional if num_children = 0, Required if num_children > 0.
type: array of ints
example:
- 5
- 7
- 11
nationality:
description: 2 letter country code of nationality of primary guest. e.g. CA for Canada, GB for United Kingdom, CO for Colombia.
type: string
example: CA
country_of_residence:
description: 2 letter country code of country of residence of primary guest. e.g. CA for Canada, GB for United Kingdom, CO for Colombia.
type: string
example: CA
HotelNextResultReference:
description: The reference object with the reference and the provider map.
type: array
items:
type: object
properties:
reference:
description: The reference for the GDS to make the next search.
example: GvCe60ac0/ca8J7rRpzT99+A990Uzoz9uPnDvrR9vlPYyiAdwA/4TedEKvTDZyf87Yyw51a62Z0vr9lr1UD15D2BfyUpgIOXDnCDubYq+Qg9pzbZYLqUbA==
type: string
provider:
description: Fare provider to use.<br />“1V” - Apollo, “1G” - Galileo, “1P” - Worldspan, “1A” - Amadeus, “webbeds” - Webbeds
type: string
example: 1V
HotelItineraryReference:
description: A reference that indicates the itineraries position in the flow of itineraries in the super_trip with the index starting at 0.
type: string
example: '1'
Flight:
ItineraryFareStructure:
type: object
description: Contains the JSON object of the response.
properties:
currency:
type: string
description: Currency
example: CAD
markup:
type: float
description: Markup specified by the Trip Ninja Net Fare to be applied at the itinerary level.
example: 25.0
path_sequence:
type: array
description: An array of IATA codes representing the chronological order of your trip.
example:
- LON-CDG
- CDG-YUL
- YUL-LON
trip_id:
type: string
description: A unique key used for identification and when booking a trip.
example: 04187ebd88c965919a2b8d54ca98390a56cd48c5
itineraries:
$ref: '#/components/schemas/SearchComponents/Flight/FareStructureSearchItineraries'
SegmentFareStructure:
type: object
description: Contains the JSON object of the response.
properties:
currency:
type: string
description: Currency
example: CAD
markup:
type: float
description: Markup specified by the Trip Ninja Net Fare to be applied at the itinerary level.
example: 25.0
path_sequence:
type: array
description: An array of IATA codes representing the chronological order of your trip.
example:
- LON-CDG
- CDG-YUL
- YUL-LON
trip_id:
type: string
description: A unique key used for identification and when booking a trip.
example: 04187ebd88c965919a2b8d54ca98390a56cd48c5
segments:
$ref: '#/components/schemas/SearchComponents/Flight/SegmentOptions'
flight_details:
$ref: '#/components/schemas/SearchComponents/Flight/FlightDetails'
Flights:
description: parameters for each flight search
type: array
items:
type: object
required:
- id
- from_city
- start_type
- to_city
- end_type
- departure_date
properties:
id:
description: Flight leg ID
type: integer
example: 1
from_city:
description: Start city/airport IATA code of leg.
type: string
example: YHZ
start_type:
description: Upper-case letter “C” for city or “A” for airport
type: string
example: C
to_city:
description: End city/airport IATA code of leg.
type: string
example: LON
end_type:
description: Upper-case letter “C” for city or “A” for airport
type: string
example: C
departure_date:
description: 'Departure date for this leg, format: YYYY-MM-DD. Any trailing characters after do not affect the API’s functionality.'
type: string
example: '2023-06-20'
cabin_class:
description: A unique cabin class can be set for each segment of the trip, otherwise it can be set at the root level.
type: string
example: BC
FareStructureSearchItineraries:
allOf:
- $ref: '#/components/schemas/SearchComponents/Flight/ItineraryProperties'
- type: array
description: Array of itineraries sorted by weight.
items:
$ref: '#/components/schemas/SearchComponents/Flight/ItineraryInfoWithCreds'
ItineraryProperties:
total_cost:
type: float
description: Total cost of cheapest segments recommended, in currency specified.
example: 693.6
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
structure:
type: array
description: 'Array representing the structure of the trip in terms of one-ways and open-jaw segments. For example: [[0, 1], [3, 4], 2] means there would be three segments. One openjaw with key “01”, one with key “34” and a one-way with key ‘2”.'
ErrorDetails:
$ref: '#/components/schemas/ErrorDetails'
ItineraryInfoWithCreds:
allOf:
- $ref: '#/components/schemas/SearchComponents/Flight/BasicItineraryInfo'
- type: object
properties:
segments:
type: array
description: List of segments in the itinerary
items:
$ref: '#/components/schemas/SearchComponents/Flight/SegmentInfoWithCreds'
BasicItineraryInfo:
type: object
properties:
weight:
type: float
description: Weight of the segment (time-value considered).
example: 239
price:
type: float
description: Price of the segment (fare and tax included).
example: 197.1
base_price:
type: float
description: Base price of the segment (tax excluded)
example: 0
taxes:
type: float
description: Tax price of the segment
example: 119.1
fees:
type: float
description: Fees for the segment *Travelport customers only*
example: 0
cabin_class:
type: string
description: Cabin class for the entire segment *Travelport customers only*
example: Economy
latest_ticketing_date:
type: date
description: Latest ticketing time
example: '2019-05-07'
refundable:
type: boolean
description: Refundable tickets
example: false
e_ticketability:
type: boolean
example: true
transp_time:
type: integer
description: Total transportation time for the itinerary
example: 425
SegmentInfoWithCreds:
allOf:
- $ref: '#/components/schemas/SearchComponents/Flight/BasicSegmentInfo'
- type: object
properties:
credential_info:
$ref: '#/components/schemas/SearchComponents/Credentials'
BasicSegmentInfo:
type: object
properties:
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)
weight:
type: string
description: Weight of the segment (time-value considered).
example: 96
segment_id:
type: string
description: String if one-way, Array of 2 Strings if open-jaw. Used for booking.
example: 344d73be0d61f820aa9a6ace300742fed0672f2e
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
example: 0
percentage:
type: float
description: Cancellation penalty percentage
example: 100
change_penalty:
type: object
description: Information about changing.
properties:
amount:
type: float
description: Change penalty amount
example: 78
percentage:
type: float
description: Change penalty percentage
example: 0
flight_type:
type: string
description: “open_jaw” or “one_way”
example: open_jaw
legs:
$ref: '#/components/schemas/SearchComponents/Flight/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==
LegDetails:
title: Leg Details
type: array
description: A list of legs for this segment
items:
type: object
properties:
OriginName:
type: string
description: Full name of the flight origin
example: London, United Kingdom (LHR)
Origin:
type: string
description: IATA code of the leg origin
example: LHR
DestinationName:
type: string
description: Full name of the leg destination
example: Paris, France (CDG)
Destination:
type: string
description: IATA code of the leg destination
example: CDG
DepartureTime:
type: string
description: Departure time of the leg
example: '2019-04-05T13:25:00.000+01:00'
ArrivalTime:
type: string
description: Arrival time of the leg
example: '2019-04-05T15:40:00.000+02:00'
FlightNumber:
type: string
description: Leg's flight number
example: 111
Carrier:
type: string
description: Leg's carrier code
example: BA
OperatingCarrier:
type: string
description: Leg's operating carrier code
example: WS
FlightTime:
type: integer
description: Flight duration in minutes
example: 75
AircraftType:
type: string
description: IATA type code for aircraft model.
example: 7M8
Key:
type: string
description: Leg’s string identifier
example: oHzo6pBAAA/B1d6hPLAAAA==
BookingCode:
type: string
description: The airline booking code that describes the flight cabin class
example: X
cabin_class:
type: string
description: Leg’s cabin class *Travelport customers only*
example: Economy
fare_info_ref:
type: string
description: Flight identifer required to make a travelport fare rule request. *Travelport Only*
example: WPADWJK0nDKATShj2JAAAA==
fare_rule_key:
type: string
description: Key corresponding to above fare_info_ref also required to make a travelport fare rule request. *Travelport Only*
example: gws-eJxNT0EKAjEMfMwy96SNxd5auqig7GFZlO7B/z/DaVR00oQOMxnaUkqQEOQosfxjwnOqDa3OwILA7pcdJkkESrZACFwf6ba37QwPyZpc+pWiu5FWPxx9CAOf2e8rBYvpbVBMiFZjVfIRYWK+Dmd13jxpqJrzN/y08g2EJ4odeOUPXvRTL2E=
fare_type:
type: string
description: Leg's fare type
example: PublicFare
SegmentOptions:
title: Segment Options
type: array
items:
type: object
properties:
credential_info:
$ref: '#/components/schemas/SearchComponents/Credentials'
origin:
type: string
description: IATA code of the segment origin
example: LHR
origin_name:
type: string
description: Full name of the flight origin
example: London, United Kingdom (LHR)
destination:
type: string
description: IATA code of the segment destination
example: CDG
destination_name:
type: string
description: Full name of the flight destination
example: Paris, France (CDG)
itinerary_type:
type: string
enum:
- ONE_WAY
- OPEN_JAW
- MULTI_PNR
description: Type of the itinerary option.
example: ONE_WAY
itinerary_id:
type: string
description: Links part of the OPEN_JAW itineraries/VI-structures together which also make a PNR.
example: ad76ah7dhasd76asb76
itinerary_markup:
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webjet/refs/heads/main/openapi/webjet-results-api-openapi.yml