Flights API documentation

Q Travel Online IBE API

download the latest flights demo implementation in php

https://ibe.qtravelcloud.com/api/flights/static_data/csv/
Important! Flight search method is now async. search() method will return only search_id, hash and systems array. In order to get the results you need to query the web service using results() method.

All the requests should be sent to https://ibe.qtravelcloud.com/api/flights/{method}/{format}/{api_key}

The {api_key} is the unique key that is used to identify yourself.

The {format} may be json or xml for responses. We recommend you to use JSON.

The available methods are:
- search ( Example url: https://ibe.qtravelcloud.com/api/flights/search/json/1234567 )
- results ( Example url: https://ibe.qtravelcloud.com/api/flights/results/json/1234567 )
- details ( Example url: https://ibe.qtravelcloud.com/api/details/details/json/1234567 )
- book ( Example url: https://ibe.qtravelcloud.com/api/flights/book/json/1234567 )

All other parameters required by each API method should be sent with POST. You can find below the list of the required parameters.

Important! If the API Key contains special characters, you should urlencode() it when building the url because our server doesn't accept special characters in the url and you may receive a server error. Ex: 123%456 becomes 123%25456

Important! By default the service will return the first page (10 results)
You need this request to retrive the rest of flights result pages.

Service URL

This is a basic URL for the API request.

	 
	https://ibe.qtravelcloud.com/api/flights/results/{format}/{api_key}
	Example 1: https://ibe.qtravelcloud.com/api/flights/results/json/12efdd34567
	Example 2: https://ibe.qtravelcloud.com/api/flights/results/xml/12345gfdd67
    


Results parameters

This is the list of parameters that should be sent with POST method and their possible values.

Parameter Required Possible value
hash yes This parameter is not required for the first search request.
After making the first search request you receive the "hash" parameter (32 characters string) and you should send it in the following search requests
search_id yes This parameter is not required for the first search request.
After making the first search request you receive the "search_id" parameter and you should send it in the following search requests
page yes Page number
per_page no Number of items displayed on page
filter_airline_carriers no Airlines codes divided by commas. Ex: RO,AF,BA,H1
filter_stops no Possible values:
  • 0 - direct flight
  • 1 - one stop
  • 2 - two stops
filter_stop_time no Possible values:
  • 0h_1h
  • 1h_2h
  • 2h_3h
  • 3h_4h
  • 4h_100h
filter_departure_time_of_day no Possible values:
  • morning_flight
  • day_flight
  • evening_flight
  • night_flight
filter_return_time_of_day no Possible values:
  • morning_flight
  • day_flight
  • evening_flight
  • night_flight
filter_price_interval no Possible value: min_value-max_value
Ex: 300-1500
filter_airline_carrier_types no Possible values:
  • legacy
  • low_cost
filter_systems no Possible values:
  • uapi_worldspan
  • uapi_galileo
  • amadeus
  • travelfusion
  • waavo

Results response

This is an example of results response (json). Each field is explained at the first occurrence

Array item Possible value Explanation
search_id 2171 The search ID number
This value is required in further steps (details, booking)
hash 5b..011 The 32-character hash associated with the search_id
This value is used in further steps (details, booking)
total_number_of_flights 100 Total number of flights
This value varies when filters are applied
This value is always less than total_number_of_flights_without_filters
total_number_of_flights_without_filters 100 Total number of flights
This value remains constant after the search is finished search_finished = true
search_finished true/false true if the search is finished
false if the search is finished
Note: the searches are made in parallel and asynchronous
search_expired true/false true if the search is expired
false if the search is active
Note: the searches expre in 20 minutes
request array() The details about the request
flights array() Array with numeric keys for each flight
Contains information about each flight
flights.(index).flight_id 5 The ID number of the flight
This value is required in further steps (details, booking)
flights.(index).system_code uapi_worldspan The code of the flight supplier
flights.(index).total_price 250.00 The total price of the flight
This value can change in further requests (details, booking)
flights.(index).currency_code EUR The 3 letter currency code of flights.(index).total_price
flights.(index).prices_per_passengers array() An array containing prices separated by passenger types (ADT, CNN, INF, SRC)
flights.(index).prices_per_passengers.(index).passenger_type_code ADT - Adult
CNN - Child
INF - Infant
SRC - Senior
The passenger type code
flights.(index).prices_per_passengers.(index).number_of_passengers 1, 2, 3, 4, 5 The number of passengers with the specified passenger_type_code
flights.(index).prices_per_passengers.(index).total_price_per_passenger 250.00 The total price per passenger per passenger_type_code
flights.(index).prices_per_passengers.(index).currency_code EUR The 3 letter currency code for total_price_per_passenger
flights.(index).outbound array() An array containing outbound information about a flight
flights.(index).outbound.summary array() An array containing outbound summary information about a flight (does not include all segments)
flights.(index).outbound.summary.airline_code JU
RO
The 2-letter airline carrier code
flights.(index).outbound.summary.airline_name Jat Airways String with airline carrier name
flights.(index).outbound.summary.departure_airport_code OTP
CDG
The 3-letter departure airport IATA code
flights.(index).outbound.summary.departure_airport_name London, United Kingdom String containing departure airport/city and country information
flights.(index).outbound.summary.departure_date_time 2014-10-26 16:10:00 String containing departure date and time (YYYY-MM-DD HH:MM:SS format)
flights.(index).outbound.summary.arrival_airport_code OTP
CDG
The 3-letter arrival airport IATA code
flights.(index).outbound.summary.arrival_airport_name Paris, France String containing arrival airport/city and country information
flights.(index).outbound.summary.arrival_date_time 2014-10-26 16:10:00 String containing arrival date and time (YYYY-MM-DD HH:MM:SS format)
flights.(index).outbound.summary.aircraft_code 319 The code of the aircraft
flights.(index).outbound.summary.aircraft_name Airbus A319 The full name of the aircraft
flights.(index).outbound.summary.total_duration 22h 15m The total outbound flight duration in hours and minutes
flights.(index).outbound.summary.time_of_day_code day_flight
evening_flight
night_flight
morning_flight
The flight time of day code
Can be used for filtering results
flights.(index).outbound.summary.stops_airport_codes array() Array containing stops (layover) airport IATA codes (if any)
flights.(index).outbound.summary.stops_airport_codes.(index) BEG The 3-letter stop airport IATA code
flights.(index).outbound.segments array() Array containing information about each segment
flights.(index).outbound.segments.(index).airline_code JU The 2-letter airline carrier code
flights.(index).outbound.segments.(index).airline_name Jat Airways The airline carrier name
flights.(index).outbound.segments.(index).departure_airport_code OTP
CDG
The 3-letter departure airport IATA code
flights.(index).outbound.segments.(index).departure_airport_name London, United Kingdom String containing departure airport/city and country information
flights.(index).outbound.segments.(index).departure_airport_terminal 9 Departure airport terminal code
flights.(index).outbound.segments.(index).departure_date_time 2014-10-26 16:10:00 String containing departure date and time (YYYY-MM-DD HH:MM:SS format)
flights.(index).outbound.segments.(index).arrival_airport_code OTP
CDG
The 3-letter arrival airport IATA code
flights.(index).outbound.segments.(index).arrival_airport_name Paris, France String containing arrival airport/city and country information
flights.(index).outbound.segments.(index).arrival_airport_terminal Paris, France String containing arrival airport/city and country information
flights.(index).outbound.segments.(index).arrival_date_time 2014-10-26 16:10:00 String containing arrival date and time (YYYY-MM-DD HH:MM:SS format)
flights.(index).outbound.segments.(index).aircraft_code 319 The code of the aircraft
flights.(index).outbound.segments.(index).aircraft_name Airbus A319 The full name of the aircraft
flights.(index).outbound.segments.(index).flight_number 643
JU643
The filght number.
This value might also contain the airline carrier code as prefix
flights.(index).outbound.segments.(index).segment_duration 1h 15m The total segment duration in hours and minutes
flights.(index).outbound.segments.(index).stop_duration 18h 00m The total stop/layover duration in hours and minutes
This value is available only when there are more than 1 outbound segments
flights.(index).outbound.segments.(index).total_duration 18h 00m The total duration of the segment
segment_duration + stop_duration
flights.(index).outbound.segments.(index).operated_by FR The 2-letter airline code of the operating carrier
Some flights might be operated by other airline carriers
flights.(index).outbound.segments.(index).available_seats 9 The total number of available seats
This values is usually available only when there are less than 9 seats
flights.(index).outbound.segments.(index).cabin_class Y - Economy
C - Business
F - First
PF - PremiumFirst
PY - PremiumEconomy
The cabin class code
"uapi_worldspan" and "uapi_galileo" ONLY
flights.(index).inbound array() An array containing inbound information about a flight
Available only for round-trip searches
This array is similar to flights.(index).outbound
Important! By default the service will return the first page (10 results)
You need this request to retrive the rest of flights result pages.

Service URL

This is a basic URL for the API request.

	 
	https://ibe.qtravelcloud.com/api/flights/search/{format}/{api_key}
	Example 1: https://ibe.qtravelcloud.com/api/flights/search/json/12efdd34567
	Example 2: https://ibe.qtravelcloud.com/api/flights/search/xml/12345gfdd67
    

Filter parameters

This is the list of parameters that should be sent with POST method and their possible values.

Parameter Required Possible value
hash yes This parameter is not required for the first search request.
After making the first search request you receive the "hash" parameter (32 characters string) and you should send it in the following search requests
search_id yes This parameter is not required for the first search request.
After making the first search request you receive the "search_id" parameter and you should send it in the following search requests
page yes Page number
per_page no Number of items displayed on page
filter_airline_carriers no Airlines codes divided by commas. Ex: RO,AF,BA,H1
filter_stops no Possible values:
  • 0 - direct flight
  • 1 - one stop
  • 2 - two stops
filter_stop_time no Possible values:
  • 0h_1h
  • 1h_2h
  • 2h_3h
  • 3h_4h
  • 4h_100h
filter_departure_time_of_day no Possible values:
  • morning_flight
  • day_flight
  • evening_flight
  • night_flight
filter_return_time_of_day no Possible values:
  • morning_flight
  • day_flight
  • evening_flight
  • night_flight
filter_price_interval no Possible value: min_value-max_value
Ex: 300-1500
filter_airline_carrier_types no Possible values:
  • legacy
  • low_cost
filter_systems no Possible values:
  • uapi_worldspan
  • uapi_galileo
  • amadeus
  • travelfusion

Filter response

This is an example of filter response (json). Each field is explained at the first occurrence

Array item Possible value Explanation
filters array() Array containing available filters
filters.price_interval array() Array containing price interval filter values
filters.price_interval.price_from 500.00 The minimum price in the interval
filters.price_interval.price_to 800.00 The maximum price in the interval
filters.airlines array() Array containing airline carrier filters
filters.airlines.(index).code JU
FR
The 2-letter airline carrier code
filters.airlines.(index).price_from 500.00 The minimum price for the specified airline carrier
filters.stops array() Array containing stops/layover filters
filters.stops.(index).code one_stop
two_stops
three_stops
direct_flight
The stop/layover code
filters.stops.(index).stops_number 0, 1, 2, 3 Numerical representation of filters.stops.(index).code
filters.stops.(index).price_from 500.00 The minimum price for the specified stop number
filters.stop_time array() Array containing stop/layover time interval filters
filters.stop_time.(index).code 0h_1h
1h_2h
2h_3h
3h_4h
The stop duration code in an interval of hours
filters.stop_time.(index).price_from 500.00 The minimum price for the specified stop time interval
filters.time_of_day_departure array() Array containing departure time of day filters
filters.time_of_day_departure.(index).code morning_flight
day_flight
evening_flight
night_flight
The departure time of day code
filters.time_of_day_departure.(index).price_from 500.00 The minimum price for the specified time of day
filters.time_of_day_return array() Array containing return time of day filters
Only for round-trip flights searches
filters.time_of_day_return.(index).code morning_flight
day_flight
evening_flight
night_flight
The return time of day code
filters.time_of_day_return.(index).price_from 500.00 The minimum price for the specified time of day
filters.airline_types.(index).code legacy
low_cost
The airline type: low-cost or GDS
filters.airline_types.(index).price_from 500.00 The minimum price for the specified airline type
filters.systems.(index).code uapi_worldspan
uapi_galileo
amadeus
travelfusion
The flight system provider.
filters.systems.(index).price_from 500.00 The minimum price for the specified system

Service URL

This is a basic URL for the API request.

	 
	https://ibe.qtravelcloud.com/api/flights/details/{format}/{api_key}
	Example 1: https://ibe.qtravelcloud.com/api/flights/details/json/12efdd34567
	Example 2: https://ibe.qtravelcloud.com/api/flights/details/xml/12345gfdd67
    

Details parameters

This is the list of parameters that should be sent with POST method and their possible values.

Parameter Required Possible value
hash yes This parameter is not required for the first search request.
After making the first search request you receive the "hash" parameter (32 characters string) and you should send it in the following search requests
search_id yes This parameter is not required for the first search request.
After making the first search request you receive the "search_id" parameter
flight_id yes After making the first search request you receive the "flights" (array) parameter where you will find the "flight_id" parameter

Details response

This is an example of details response (json). Each field is explained at the first occurrence

A response from travelfusion system contains additional information regarding hand luggage and other required/optional fields form the booking process.

Array item Possible value Explanation
error Flight not available!
Session expired!
...
A string containing an error message (usually from the supplier). If this key is present in the response the flight should not be booked.
search_id 2171 The search ID number
This value is required in further steps (details, booking)
hash 5b..011 The 32-character hash associated with the search_id
This value is used in further steps (details, booking)
flight array() Array with information about the selected flight
flight.flight_id 5 The ID number of the flight
This value is required in further steps (details, booking)
flight.system_code uapi_worldspan The code of the flight supplier
flight.total_price 250.00 The total price of the flight
This value can change in further requests (booking)
flight.currency_code EUR The 3 letter currency code of flights.total_price
flight.luggage_prices array() An array containing luggages information
flight.luggage_prices.(index).luggage_code l1
l2
The luggage code
flight.luggage_prices.(index).quantity 1
2
3
The luggage quantity
flight.luggage_prices.(index).weight 32 The luggage weight in kilograms
flight.luggage_prices.(index).max_weight 96 The total maximum weight in kilograms of luggage a passenger can carry
flight.luggage_prices.(index).price 42.00 The price for the specified luggage
flight.luggage_prices.(index).currency EUR
GBP
The currency code for flights.luggage_prices.(index).price
flight.prices_per_passengers array() An array containing prices separated by passenger types (ADT, CNN, INF, SRC)
flight.prices_per_passengers.(index).passenger_type_code ADT - Adult
CNN - Child
INF - Infant
SRC - Senior
The passenger type code
flight.prices_per_passengers.(index).number_of_passengers 1, 2, 3, 4, 5 The number of passengers with the specified passenger_type_code
flight.prices_per_passengers.(index).total_price_per_passenger 250.00 The total price per passenger per passenger_type_code
flight.prices_per_passengers.(index).currency_code EUR The 3 letter currency code for total_price_per_passenger
flight.outbound array() An array containing outbound information about a flight
flight.outbound.summary array() An array containing outbound summary information about a flight (does not include all segments)
flight.outbound.summary.airline_code JU
RO
The 2-letter airline carrier code
flight.outbound.summary.airline_name Jat Airways String with airline carrier name
flight.outbound.summary.departure_airport_code OTP
CDG
The 3-letter departure airport IATA code
flight.outbound.summary.departure_airport_name London, United Kingdom String containing departure airport/city and country information
flight.outbound.summary.departure_date_time 2014-10-26 16:10:00 String containing departure date and time (YYYY-MM-DD HH:MM:SS format)
flight.outbound.summary.arrival_airport_code OTP
CDG
The 3-letter arrival airport IATA code
flight.outbound.summary.arrival_airport_name Paris, France String containing arrival airport/city and country information
flight.outbound.summary.arrival_date_time 2014-10-26 16:10:00 String containing arrival date and time (YYYY-MM-DD HH:MM:SS format)
flight.outbound.summary.aircraft_code 319 The code of the aircraft
flight.outbound.summary.aircraft_name Airbus A319 The full name of the aircraft
flight.outbound.summary.total_duration 22h 15m The total outbound flight duration in hours and minutes
flight.outbound.summary.time_of_day_code day_flight
evening_flight
night_flight
morning_flight
The flight time of day code
Can be used for filtering results
flight.outbound.summary.stops_airport_codes array() Array containing stops (layover) airport IATA codes (if any)
flight.outbound.summary.stops_airport_codes.(index) BEG The 3-letter stop airport IATA code
flight.outbound.segments array() Array containing information about each segment
flight.outbound.segments.(index).airline_code JU The 2-letter airline carrier code
flight.outbound.segments.(index).airline_name Jat Airways The airline carrier name
flight.outbound.segments.(index).departure_airport_code OTP
CDG
The 3-letter departure airport IATA code
flight.outbound.segments.(index).departure_airport_name London, United Kingdom String containing departure airport/city and country information
flight.outbound.segments.(index).departure_airport_terminal 9 Departure airport terminal code
flight.outbound.segments.(index).departure_date_time 2014-10-26 16:10:00 String containing departure date and time (YYYY-MM-DD HH:MM:SS format)
flight.outbound.segments.(index).arrival_airport_code OTP
CDG
The 3-letter arrival airport IATA code
flight.outbound.segments.(index).arrival_airport_name Paris, France String containing arrival airport/city and country information
flight.outbound.segments.(index).arrival_airport_terminal Paris, France String containing arrival airport/city and country information
flight.outbound.segments.(index).arrival_date_time 2014-10-26 16:10:00 String containing arrival date and time (YYYY-MM-DD HH:MM:SS format)
flight.outbound.segments.(index).aircraft_code 319 The code of the aircraft
flight.outbound.segments.(index).aircraft_name Airbus A319 The full name of the aircraft
flight.outbound.segments.(index).flight_number 643
JU643
The flight number.
This value might also contain the airline carrier code as prefix
flights.outbound.segments.(index).segment_duration 1h 15m The total segment duration in hours and minutes
flight.outbound.segments.(index).stop_duration 18h 00m The total stop/layover duration in hours and minutes
This value is available only when there are more than 1 outbound segments
flight.outbound.segments.(index).total_duration 18h 00m The total duration of the segment
segment_duration + stop_duration
flight.outbound.segments.(index).operated_by FR The 2-letter airline code of the operating carrier
Some flights might be operated by other airline carriers
flight.outbound.segments.(index).available_seats 9 The total number of available seats
This values is usually available only when there are less than 9 seats
flight.inbound array() An array containing inbound information about a flight
Available only for round-trip searches
This array is similar to flights.outbound
flight.required_fields array() Array containing fields needed for booking
flight.required_fields.(index).name DateOfBirth
NumberOfBags
SpeedyBoarding
PhoneCountryCode
PhoneAreaCode
MobilePhone
CardStartDate
ChildrenAndInfantsSearch
ChildrenAndInfantsBooking
OnlineCheckinWithEUPassportOrId
HandLuggage
PostCode
Field name
flight.required_fields.(index).per_passenger true
false
True if the field is per passenger
False if the field is per booking
flight.required_fields.(index).is_optional true
false
Shows if the field is optional (true) or required (false)
flight.required_fields.(index).display_text String Field label text
flight.hand_luggage_options array() Array containing hand luggage options
Should be displayed as select box
flight.hand_luggage_options.(index).value 1, 2, 3 The select option value (hand luggage code)
flight.hand_luggage_options.(index).name Small cabin bag The option name
flight.fare_rules array() Array with numeric keys for each fare rule
flight.fare_rules array() Array with numeric keys for each fare rule
flight.fare_rules.(index) Web Check-in... Fare rule text
flight.airports array() Array containing all flight airports information
flight.airports.(index).code LTN Airport code
flight.airports.(index).name Luton Airport name
flight.airports.(index).location London, United Kingdom Airport location
flight.airlines array() Array containing all flight airlines information
flight.airlines.(index).code W6 Airline code
flight.airlines.(index).name WizzAir Airline name
flight.aircrafts array() Array containing all flight aircrafts information
flight.aircrafts.(index).code 319 Aircrafts code
flight.aircrafts.(index).name Airbus A319 Aircrafts name

Service URL

This is a basic URL for the API request.

	 
	https://ibe.qtravelcloud.com/api/flights/book/{format}/{api_key}
	Example 1: https://ibe.qtravelcloud.com/api/flights/book/json/12efdd34567
	Example 2: https://ibe.qtravelcloud.com/api/flights/book/xml/12345gfdd67
    

Booking parameters

This is the list of parameters that should be sent with POST method and their possible values.

Parameter Required Possible value
hash yes This parameter is not required for the first search request.
After making the first search request you receive the "hash" parameter (32 characters string)
search_id yes This parameter is not required for the first search request.
After making the first search request you receive the "search_id" parameter
flight_id yes After making the first search request you receive the "flights" parameter where you will find the "flight_id" parameter
Passenger data
(index) must be replaced with the the passenger number starting from 1.
passenger_(index) fileds must be repeated for each passenger
E.g: passenger_1_title, passenger_2_title for two passengers
passenger_(index)_title yes The passenger title
M - Male
F - Female
passenger_(index)_type yes Passenger type code
ADT - Adult
CNN - Child
INF - Infant
SRC - Senior
passenger_(index)_first_name yes Passenger first name
passenger_(index)_last_name yes Passenger last name
passenger_(index)_birth_date yes Passenger birth date
YYYY-MM-DD format
passenger_(index)_luggage no Luggage code from flight.luggage_prices.(index).code
passenger_(index)_hand_luggage no Hand luggage value from flight.hand_luggage_options.(index).value
customer yes This parameter contains all information about the customer.

This array must be encoded in json before sending the request
Parameter Required Possible value
type yes 0 - individual
1 - company
individual_title yes Mr, Mrs, Miss
individual_first_name yes The customer first name
individual_last_name yes The customer last name
phone yes The customer phone
company_name yes/no The customer's company name (if type is 1)
company_registration_number yes/no The customer's company registration number (if type is 1)
company_vat_number yes/no The customer's company vat number (if type is 1)
Show example
host_url no The name of the server host under which the current request is sending.
payment_method yes The payment method used by the customer
remarks no Send buyer's remarks

Booking response

This is an example of booking response (json). Each field is explained at the first occurrence

Array item Possible value Explanation
booking_id 12345 The booking ID
Can be used to get booking information later
record_locator QWERTY123 The flight booking record locator/reference number from the system (e.g.: travelfusion, uapi_worldspan)
                		
Array
(
    [booking_id] => 12345
	[booking_hash] => ABCDEFGHIJKLMNOPQ
	[record_locator] => QWERTY123
)	
                		                		

This is the documentation for API.