Getting started
Booking engine API for flights. Search and book flights for every destination in world.
Main API URL
https://air.tmc-solutions.xyzVersions
Curent available versions with endpoints:
v1
-
List
https://air.tmc-solutions.xyz/v1/list/ -
List
https://air.tmc-solutions.xyz/v1/choose/ -
Book
https://air.tmc-solutions.xyz/v1/book/ -
adt
number of adult passengers - string/number
-
yth
number of youth passengers - string/number
-
chd
number of youth passengers - string/number
-
inf
number of infant passengers - string/number
-
search
origin, destination, departure - array
-
origin
3 code of origin - string
-
destination
3 code of destination - string
-
deparure
3 code of destination - string/date ( format: YYYY-MM-DD )
-
origin
Key
Key is required for every API call.
Add key as GET param
https://air.tmc-solutions.xyz/v1/list/key=yourkeyList
List endpoint return list of flights combinations for requested origin, destination, departure, return.
List endpoint
https://air.tmc-solutions.xyz/v1/list?key=yourkeyRequest
Request must be POST on List endpoint with required fields below
Required fields
Oneway
{ "adt":"1", "yth":0, "chd":0, "inf":0 "search":[ { "origin":"FRA", "destination":"LON", "departure":"2019-12-27" } ], }
Return
{ "adt":"1", "yth":0, "chd":0, "inf":0 "search":[ { "origin":"FRA", "destination":"LON", "departure":"2019-10-27" }, { "origin":"LON", "destination":"FRA", "departure":"2019-11-04" } ] }
Optional fields
-
limit
limit list options - string/number
-
offset
skip options - string/number
-
sort
sort options - array
-
key
flight field from list
-
value
ASC || DESC
-
key
-
filters
filter options - array
-
key
flight field from list
-
value
string
-
key
-
filtersRange
filter options - array
-
key
flight field from list
-
[min]
string/number
-
[max]
string/number
-
[min]
-
key
{ "adt":"1", "yth":0, "chd":0, "inf":0, "limit":10, "offset":10, "sort":[ "adtPrice":"DESC" ], "filters":[ "carrier":"OU" ], "filtersRange":[ "duration":[ "min": "100", "max": "400", ] ], "search":[ { "origin":"FRA", "destination":"LON", "departure":"2019-10-27" }, { "origin":"LON", "destination":"FRA", "departure":"2019-11-04" } ] }
Response
List response contains:
-
requestID
required value for other choose and book request - string
-
adt
number of requested adult passengers - string/number
-
yth
number of requested youth passengers - string/number
-
chd
number of requested child passengers - string/number
-
inf
number of requested infant passengers - string/number
-
optionsCount
number options in list - integer/number
-
filters
sum of values in list by options, flights, segments - array
-
options
sum of values in options - array
- prices
- carriers
-
flights
sum of values in flights - array
- fareType
- cabinClass
- origin
- destination
- routing
- duration
- baggage
-
segments
- operatingCarriers
- equipment
- meals
- tehnicalStops
-
options
-
options
combination of flights options - array
-
requestID
required value for other choose and book request - string
-
optionID
required value for other choose - string
-
carriers
validating carrier - string
-
prices
detailed list of prices for ADT,YTH,CHD and INF - array
-
fare
option fare price - integer
-
tax
option tax price - integer
-
total
option total price - integer
-
fare
-
adtPrice
option total price for ADT - integer
-
ythPrice
option total price for YTH - integer
-
chdPrice
option total price for CHD - integer
-
infPrice
option total price for INF - integer
-
currency
option prices currency - string
-
flights
list of flights for option - array
-
outgoing || incoming
list of flights for option - array
-
flightID
required value for other choose - string
- fareType - string
- bookingClass - string
- cabinClass - string
- validatingCarrier - string
- ticketingTimeLimit - string/date
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
- routing - string
-
duration
flight duration in min - integer
-
seats
available seats for flight - integer
-
segmentsNum
number of segments - integer
-
segments
list of segments for flight - array
- operatingCarrier - string
- airplaneCarrier - string
- flightNumber - string
- equipment - string
- equipmentName - string
- seats - string
- meals - string
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
-
duration
segment duration in min - integer
-
technicalStop
number of tehnical stop for segment - string/number
-
flightID
-
outgoing || incoming
-
requestID
Response example
{ "requestID": "iOpqut3IUu9qSTazNXrU6zdAEI4aRrPm7mFNivEtbMv0L4de8z", "adt":"1", "yth":0, "chd":0, "inf":0 "optionsCount":22, "filters":{...}, "options":{...}, }
Filters example
{ "filters":{ "options":{ "prices": { "2533": 1, "2869": 1, "3042": 1, ... }, "carriers": { "AF": 6, "LH": 15, ... } }, "flights":{...}, "segments":{...}, } }
Options example
"options": [ { "requestID": "iOpqut3IUu9qSTazNXrU6zdAEI4aRrPm7mFNivEtbMv0L4de8z", "optionID": "eXBzaWxvbi5hbWFkZXVzLjA=", "carriers": "TK" "prices": { "ADT": { "fare": 665, "tax": 1868, "total": 2533 }, "CHD": { "fare": 665, "tax": 1868, "total": 2533 }, "INF": { "fare": 665, "tax": 1868, "total": 2533 }, "YTH": { "fare": 665, "tax": 1868, "total": 2533 } }, "adtPrice": 2533, "ythPrice": 2533, "chdPrice": 2533, "infPrice": 2533, "currency": "HRK", "flights": [ "outgoing":[...], "incoming":[...] ] }, ...
Flights example
"incoming": [ { "flightID": "b3V0Z29pbmcuUFVCLkxOMlhQQi5FLlRLLlpBRy4yMDE5LTAzLTE0IDIwOjAwLkJFWS4yMDE5LTAzLTE1IDAyOjM1LjI=", "type": "outgoing", "fareType": "PUB", "fareBase": "LN2XPB", "bookingClass": "L", "cabinClass": "E", "validatingCarrier": "TK", "ticketingTimeLimit": "2019-03-14", "origin": "ZAG", "originDetails": { "code": "ZAG", "icao": "LDZA", "continentCode": "EU", "countryCode": "HR", "regionCode": "", "cityCode": "ZAG", "timeZone": "Europe/Zagreb", "UTC": 1, "latitude": 45.733242, "longitude": 16.061519, "elevation": 353 }, "destination": "BEY", "destinationDetails": { "code": "BEY", "icao": "OLBA", "continentCode": "AS", "countryCode": "LB", "regionCode": "", "cityCode": "BEY", "timeZone": "Asia/Beirut", "UTC": 2, "latitude": 33.826073, "longitude": 35.493082, "elevation": 87 }, "departure": "2019-03-14 20:00", "arrival": "2019-03-15 02:35", "routing": "ZAG-IST-BEY", "routingCity": "", "routingCountry": "", "routingContinent": "", "duration": 395, "miles": "", "baggage": "", "seats": 9, "segmentsNum": 2, "segments": [...] }, ...
Segments example
"segments": [ { "operatingCarrier": "TK", "airplaneCarrier": "", "flightNumber": "1056", "equipment": "321", "equipmentName": "Airbus A321", "seats": 9, "meals": "", "origin": "ZAG", "originDetails": { "code": "ZAG", "icao": "LDZA", "continentCode": "EU", "countryCode": "HR", "regionCode": "", "cityCode": "ZAG", "timeZone": "Europe/Zagreb", "UTC": 1, "latitude": 45.733242, "longitude": 16.061519, "elevation": 353 }, "destination": "IST", "destinationDetails": { "code": "IST", "icao": "LTBA", "continentCode": "AS", "countryCode": "TR", "regionCode": "", "cityCode": "IST", "timeZone": "Europe/Istanbul", "UTC": 3, "latitude": 40.976667, "longitude": 28.815278, "elevation": 158 }, "departure": "2019-03-14 20:00", "arrival": "2019-03-15 00:10", "duration": 250, "miles": "", "baggage": "", "technicalStop": "0" }, ...
Choose
Choose endpoint check and validate price&seat availability from list response
Choose endpoint
https://air.tmc-solutions.xyz/v1/choose?key=yourkeyRequest
Request must be POST on Choose endpoint with required fields below
Required fields
-
requestID
given from list request - string
-
option
choosen option - string
-
flights
choosen flights for option - array
-
flightID - string
3 code of origin - string
-
flightID - string
Oneway
{ "requestID":"PG6dHkK4eaPHp4kenAitfGIKMDhSA95slJjh8eynsaAMsry4Gz", "option":"eXBzaWxvbi5hbWFkZXVzLjU=", "flights":[ "b3V0Z29pbmcuUFVCLlgxQVJXSFI5LkUuQUYuWkFHLjIwMTktMDUtMTQgMTc6NTUuTEhSLjIwMTktMDUtMTUgMTk6MjAuMg==" ] }
Return
{ "requestID":"PG6dHkK4eaPHp4kenAitfGIKMDhSA95slJjh8eynsaAMsry4Gz", "option":"eXBzaWxvbi5hbWFkZXVzLjU=", "flights":[ "b3V0Z29pbmcuUFVCLlgxQVJXSFI5LkUuQUYuWkFHLjIwMTktMDUtMTQgMTc6NTUuTEhSLjIwMTktMDUtMTUgMTk6MjAuMg==", "b3V0Z29pbmcuUFVCLlgxQVJXSFI5LkUuQUYuWkFjztewrerrdsfsadhasTc6NTUuTEhSLjIwMTktMDUtMTUgMTk6MjAuMg==", ] }
Response
Choose response contains:
-
requestID
required value for book request - string
-
status
status of choosen option - string
-
priceDiff
if price changed contains difference between list price - array
-
additional
additional options for each passenger, baggage, priority boarding... - array
-
rule
fare rule for option - string/base64encoded
-
option
choosen option details - object
-
requestID
required value for other choose and book request - string
-
optionID
required value for other choose - string
-
carriers
list of validating carriers in flights - array/strings
-
prices
detailed list of prices for ADT,YTH,CHD and INF - array
-
fare
option fare price - integer
-
tax
option tax price - integer
-
total
option total price - integer
-
fare
-
adtPrice
option total price for ADT - integer
-
ythPrice
option total price for YTH - integer
-
chdPrice
option total price for CHD - integer
-
infPrice
option total price for INF - integer
-
currency
option prices currency - string
-
flights
list of flights for option - array
-
flightID
required value for other choose - string
- fareType - string
- bookingClass - string
- cabinClass - string
- validatingCarrier - string
- ticketingTimeLimit - string/date
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
- routing - string
-
duration
flight duration in min - integer
-
seats
available seats for flight - integer
-
segmentsNum
number of segments - integer
-
segments
list of segments for flight - array
- operatingCarrier - string
- airplaneCarrier - string
- carrier - string
- flightNumber - string
- equipment - string
- equipmentName - string
- seats - string
- meals - string
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
-
duration
segment duration in min - integer
-
technicalStop
number of tehnical stop for segment - string/number
-
flightID
-
requestID
Response example
{ "requestID": "iOpqut3IUu9qSTazNXrU6zdAEI4aRrPm7mFNivEtbMv0L4de8z", "status":"success", "option":{...}, "priceDiff": null, "additional":"", "rule": "IyMjIyMjIyMjIyMjIyMjI.....", }
Option example
"option": { "requestID": "iOpqut3IUu9qSTazNXrU6zdAEI4aRrPm7mFNivEtbMv0L4de8z", "optionID": "eXBzaWxvbi5hbWFkZXVzLjA=", "carriers": [ "TK" ], "prices": { "ADT": { "fare": 665, "tax": 1868, "total": 2533 }, "CHD": { "fare": 665, "tax": 1868, "total": 2533 }, "INF": { "fare": 665, "tax": 1868, "total": 2533 }, "YTH": { "fare": 665, "tax": 1868, "total": 2533 } }, "adtPrice": 2533, "ythPrice": 2533, "chdPrice": 2533, "infPrice": 2533, "currency": "HRK", "flights": [ "incoming":[...], "outgoing":[...] ] }
Flights example
"incoming": [ { "flightID": "b3V0Z29pbmcuUFVCLkxOMlhQQi5FLlRLLlpBRy4yMDE5LTAzLTE0IDIwOjAwLkJFWS4yMDE5LTAzLTE1IDAyOjM1LjI=", "type": "outgoing", "fareType": "PUB", "fareBase": "LN2XPB", "bookingClass": "L", "cabinClass": "E", "validatingCarrier": "TK", "ticketingTimeLimit": "2019-03-14", "origin": "ZAG", "originDetails": { "code": "ZAG", "icao": "LDZA", "continentCode": "EU", "countryCode": "HR", "regionCode": "", "cityCode": "ZAG", "timeZone": "Europe/Zagreb", "UTC": 1, "latitude": 45.733242, "longitude": 16.061519, "elevation": 353 }, "destination": "BEY", "destinationDetails": { "code": "BEY", "icao": "OLBA", "continentCode": "AS", "countryCode": "LB", "regionCode": "", "cityCode": "BEY", "timeZone": "Asia/Beirut", "UTC": 2, "latitude": 33.826073, "longitude": 35.493082, "elevation": 87 }, "departure": "2019-03-14 20:00", "arrival": "2019-03-15 02:35", "routing": "ZAG-IST-BEY", "routingCity": "", "routingCountry": "", "routingContinent": "", "duration": 395, "miles": "", "baggage": "", "seats": 9, "segmentsNum": 2, "segments": [...] }, ...
Segments example
"segments": [ { "operatingCarrier": "TK", "airplaneCarrier": "", "flightNumber": "1056", "equipment": "321", "equipmentName": "Airbus A321", "seats": 9, "meals": "", "origin": "ZAG", "originDetails": { "code": "ZAG", "icao": "LDZA", "continentCode": "EU", "countryCode": "HR", "regionCode": "", "cityCode": "ZAG", "timeZone": "Europe/Zagreb", "UTC": 1, "latitude": 45.733242, "longitude": 16.061519, "elevation": 353 }, "destination": "IST", "destinationDetails": { "code": "IST", "icao": "LTBA", "continentCode": "AS", "countryCode": "TR", "regionCode": "", "cityCode": "IST", "timeZone": "Europe/Istanbul", "UTC": 3, "latitude": 40.976667, "longitude": 28.815278, "elevation": 158 }, "departure": "2019-03-14 20:00", "arrival": "2019-03-15 00:10", "duration": 250, "miles": "", "baggage": "", "technicalStop": "0" }, ...
Book
Book endpoint generate booking and reserve sets in choose option flights
Book endpoint
https://air.tmc-solutions.xyz/v1/book?key=yourkeyRequest
Request must be POST on Book endpoint with required fields below
Required fields
-
requestID
given from choose request - string
-
payment
payment type - string
- invoice
- cash
-
customer
customer - object
- firstName - string
- lastName - string
- phone - string
- email - string
-
passanger
passanger - array
- firstName - string
- lastName - string
- birthDate - string * required for CHD or INF
Request example
{ "requestID":"PG6dHkK4eaPHp4kenAitfGIKMDhSA95slJjh8eynsaAMsry4Gz", "payment":"invoice", "customer":{ "firstName":"Foo", "lastName":"Bar", "phone":"+003443032432", "email":"foo@bar.com", } "passegers":[ { "type":"ADT" "firstName":"Foo", "lastName":"Bar", "birthDate":"1980-01-01" }, ... ] }
Response
Book response contains:
-
requestID
required value for book request - string
-
recordLocator
booking code - string
-
ticketingLimit
booking expiry datetime - string
-
status
status of choosen option - string
-
payment
requested payment - string
-
customer
requested customer details - object
-
passengers
requested passengers details - array
-
rule
fare rule for option - string/base64encoded
-
option
choosen option details - object
-
requestID
required value for other choose and book request - string
-
optionID
required value for other choose - string
-
carriers
list of validating carriers in flights - array/strings
-
prices
detailed list of prices for ADT,YTH,CHD and INF - array
-
fare
option fare price - integer
-
tax
option tax price - integer
-
total
option total price - integer
-
fare
-
adtPrice
option total price for ADT - integer
-
ythPrice
option total price for YTH - integer
-
chdPrice
option total price for CHD - integer
-
infPrice
option total price for INF - integer
-
currency
option prices currency - string
-
flights
list of flights for option - array
-
flightID
required value for other choose - string
- fareType - string
- bookingClass - string
- cabinClass - string
- validatingCarrier - string
- ticketingTimeLimit - string/date
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
- routing - string
-
duration
flight duration in min - integer
-
seats
available seats for flight - integer
-
segmentsNum
number of segments - integer
-
segments
list of segments for flight - array
- operatingCarrier - string
- airplaneCarrier - string
- flightNumber - string
- equipment - string
- equipmentName - string
- seats - string
- meals - string
- origin - string
-
originDetails
origin details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
- destination - string
-
destinationDetails
destination details - array
- code - string
- icao - string
- continentCode - string
- countryCode - string
- regionCode - string
- cityCode - string
- timeZone - string
- UTC - string
- latitude - float
- longitude - float
- elevation - integer
-
departure
departure datetime - string/datetime
-
arrival
arrival datetime - string/datetime
-
duration
segment duration in min - integer
-
technicalStop
number of tehnical stop for segment - string/number
-
flightID
-
requestID
Response example
{ "requestID": "cX2cPXKxiZdy0ktJT2EuG2HYi9Cif16d8jIDPtPDenTY6l20Z0", "adt": "1", "chd": "0", "yth": "0", "inf": "0", "customer": { "version": "", "firstName": "Foo", "lastName": "Bar", "gender": "", "birthDate": "", "phone": "+2312434434343", "email": "foo@bar.com", "country": "", "city": "", "zipcode": "", "street": "", "streetNo": "" }, "passangers": [ { "type": "", "firstName": "Foo", "lastName": "Bar", "gender": "", "birthDate": "" } ], "payment": "invoice", "recordLocator": "45DFHS", "status": "success", "ticketingLimit": "2019-02-18 23:59", "option": { ... } "rule": "...." }