{ "status": "success", "tracking_id": "111178228773698221HM43N", "performanceDuration": "", "data": [ { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-0", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-0", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p0", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-0", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H6M", "transit_time": "PT22H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p6", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 799.58, "gross_total": 799.58, "base_fare": 277, "tax": 522.58, "sell": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Nzk5LjU4LCJiYXNlX2ZhcmUiOjI3NywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo3OTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 799.58, "filter": { "id": "F1MS00008-0", "price": 799.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-1", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-1", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p0", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-1", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p7", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 799.58, "gross_total": 799.58, "base_fare": 277, "tax": 522.58, "sell": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Nzk5LjU4LCJiYXNlX2ZhcmUiOjI3NywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo3OTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 799.58, "filter": { "id": "F1MS00008-1", "price": 799.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-2", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-2", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p1", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-2", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p6", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 799.58, "gross_total": 799.58, "base_fare": 277, "tax": 522.58, "sell": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Nzk5LjU4LCJiYXNlX2ZhcmUiOjI3NywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo3OTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 799.58, "filter": { "id": "F1MS00008-2", "price": 799.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-3", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-3", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p1", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-3", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D8H6M", "transit_time": "PT1D8H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p7", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 799.58, "gross_total": 799.58, "base_fare": 277, "tax": 522.58, "sell": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Nzk5LjU4LCJiYXNlX2ZhcmUiOjI3NywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo3OTkuNTgsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 799.58, "base_fare": 277, "tax": 522.58, "gross": { "base_fare": "277.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijc5OS41OCIsImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo3OTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 799.58, "filter": { "id": "F1MS00008-3", "price": 799.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-4", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-4", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p14", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-4", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H35M", "transit_time": "PT15H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p20", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 834.58, "gross_total": 834.58, "base_fare": 312, "tax": 522.58, "sell": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODM0LjU4LCJiYXNlX2ZhcmUiOjMxMiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4MzQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 834.58, "filter": { "id": "F1MS00008-4", "price": 834.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-5", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-5", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p14", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-5", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p21", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 834.58, "gross_total": 834.58, "base_fare": 312, "tax": 522.58, "sell": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODM0LjU4LCJiYXNlX2ZhcmUiOjMxMiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4MzQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 834.58, "filter": { "id": "F1MS00008-5", "price": 834.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-6", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-6", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p15", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-6", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p20", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 834.58, "gross_total": 834.58, "base_fare": 312, "tax": 522.58, "sell": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODM0LjU4LCJiYXNlX2ZhcmUiOjMxMiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4MzQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 834.58, "filter": { "id": "F1MS00008-6", "price": 834.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-7", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-7", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p15", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-7", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H35M", "transit_time": "PT1D1H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p21", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 834.58, "gross_total": 834.58, "base_fare": 312, "tax": 522.58, "sell": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODM0LjU4LCJiYXNlX2ZhcmUiOjMxMiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4MzQuNTgsImJhc2VfZmFyZSI6MzEyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 834.58, "base_fare": 312, "tax": 522.58, "gross": { "base_fare": "312.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjgzNC41OCIsImJhc2VfZmFyZSI6IjMxMi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4MzQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 834.58, "filter": { "id": "F1MS00008-7", "price": 834.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-8", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-8", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p2", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-8", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H6M", "transit_time": "PT22H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p8", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 859.58, "gross_total": 859.58, "base_fare": 337, "tax": 522.58, "sell": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODU5LjU4LCJiYXNlX2ZhcmUiOjMzNywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4NTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 859.58, "filter": { "id": "F1MS00008-8", "price": 859.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-9", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-9", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p2", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-9", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p9", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 859.58, "gross_total": 859.58, "base_fare": 337, "tax": 522.58, "sell": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODU5LjU4LCJiYXNlX2ZhcmUiOjMzNywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4NTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 859.58, "filter": { "id": "F1MS00008-9", "price": 859.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-10", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-10", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p3", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-10", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p8", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 859.58, "gross_total": 859.58, "base_fare": 337, "tax": 522.58, "sell": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODU5LjU4LCJiYXNlX2ZhcmUiOjMzNywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4NTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 859.58, "filter": { "id": "F1MS00008-10", "price": 859.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-11", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-11", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p3", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-11", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D8H6M", "transit_time": "PT1D8H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p9", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 859.58, "gross_total": 859.58, "base_fare": 337, "tax": 522.58, "sell": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODU5LjU4LCJiYXNlX2ZhcmUiOjMzNywidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4NTkuNTgsImJhc2VfZmFyZSI6MzM3LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 859.58, "base_fare": 337, "tax": 522.58, "gross": { "base_fare": "337.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg1OS41OCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4NTkuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 859.58, "filter": { "id": "F1MS00008-11", "price": 859.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-12", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-12", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p16", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-12", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H35M", "transit_time": "PT15H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p22", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 894.58, "gross_total": 894.58, "base_fare": 372, "tax": 522.58, "sell": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODk0LjU4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4OTQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 894.58, "filter": { "id": "F1MS00008-12", "price": 894.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-13", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-13", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p16", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-13", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p23", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 894.58, "gross_total": 894.58, "base_fare": 372, "tax": 522.58, "sell": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODk0LjU4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4OTQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 894.58, "filter": { "id": "F1MS00008-13", "price": 894.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-14", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-14", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p17", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-14", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p22", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 894.58, "gross_total": 894.58, "base_fare": 372, "tax": 522.58, "sell": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODk0LjU4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4OTQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 894.58, "filter": { "id": "F1MS00008-14", "price": 894.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-15", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-15", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p17", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-15", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H35M", "transit_time": "PT1D1H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p23", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 894.58, "gross_total": 894.58, "base_fare": 372, "tax": 522.58, "sell": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6ODk0LjU4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo4OTQuNTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 894.58, "base_fare": 372, "tax": 522.58, "gross": { "base_fare": "372.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijg5NC41OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo4OTQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 894.58, "filter": { "id": "F1MS00008-15", "price": 894.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-16", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-16", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p28", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-16", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT18H30M", "transit_time": "PT18H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 909.79, "gross_total": 909.79, "base_fare": 371, "tax": 538.79, "sell": { "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTA5Ljc5LCJiYXNlX2ZhcmUiOjM3MSwidGF4Ijo1MzguNzl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5MDkuNzksImJhc2VfZmFyZSI6MzcxLCJ0YXgiOjUzOC43OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5MDkuNzksImJhc2VfZmFyZSI6MzcxLCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "371.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79, "gross": { "base_fare": "371.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5MDkuNzksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 909.79, "filter": { "id": "F1MS00008-16", "price": 909.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-17", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-17", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p29", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-17", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H40M", "transit_time": "PT21H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 909.79, "gross_total": 909.79, "base_fare": 371, "tax": 538.79, "sell": { "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTA5Ljc5LCJiYXNlX2ZhcmUiOjM3MSwidGF4Ijo1MzguNzl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5MDkuNzksImJhc2VfZmFyZSI6MzcxLCJ0YXgiOjUzOC43OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5MDkuNzksImJhc2VfZmFyZSI6MzcxLCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "371.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 909.79, "base_fare": 371, "tax": 538.79, "gross": { "base_fare": "371.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjkwOS43OSIsImJhc2VfZmFyZSI6IjM3MS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5MDkuNzksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 909.79, "filter": { "id": "F1MS00008-17", "price": 909.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-18", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-18", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-18", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT5H55M", "transit_time": "PT5H55M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p53", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 959.98, "gross_total": 959.98, "base_fare": 372, "tax": 587.98, "sell": { "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTU5Ljk4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1ODcuOTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NTkuOTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjU4Ny45OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NTkuOTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98, "gross": { "base_fare": "372.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NTkuOTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 959.98, "filter": { "id": "F1MS00008-18", "price": 959.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Light", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-19", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-19", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-19", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H5M", "transit_time": "PT9H5M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p53", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 959.98, "gross_total": 959.98, "base_fare": 372, "tax": 587.98, "sell": { "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTU5Ljk4LCJiYXNlX2ZhcmUiOjM3MiwidGF4Ijo1ODcuOTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NTkuOTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjU4Ny45OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NTkuOTgsImJhc2VfZmFyZSI6MzcyLCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "372.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 959.98, "base_fare": 372, "tax": 587.98, "gross": { "base_fare": "372.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk1OS45OCIsImJhc2VfZmFyZSI6IjM3Mi4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NTkuOTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 959.98, "filter": { "id": "F1MS00008-19", "price": 959.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Light", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-20", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-20", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT6H10M", "transit_time": "PT6H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p58", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T13:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T15:55:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T17:50:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T19:05:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H15M", "distance": 259, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT04H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-20", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT8H35M", "transit_time": "PT8H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p68", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 963.51, "gross_total": 963.51, "base_fare": 373, "tax": 590.51, "sell": { "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTYzLjUxLCJiYXNlX2ZhcmUiOjM3MywidGF4Ijo1OTAuNTF9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjMuNTEsImJhc2VfZmFyZSI6MzczLCJ0YXgiOjU5MC41MSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjMuNTEsImJhc2VfZmFyZSI6MzczLCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "373.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51, "gross": { "base_fare": "373.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NjMuNTEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 963.51, "filter": { "id": "F1MS00008-20", "price": 963.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Light Bag", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T13:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301355ams2026063015551664ams202606301750cdg2026063019051411cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-21", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-21", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT10H35M", "transit_time": "PT10H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p59", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T09:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T11:20:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T14:10:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T15:35:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H25M", "distance": 259, "lay_over": "PT02H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "Airbus A320", "picture": "32A.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT07H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-21", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT13H0M", "transit_time": "PT13H0M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p68", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Light Bag", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 963.51, "gross_total": 963.51, "base_fare": 373, "tax": 590.51, "sell": { "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTYzLjUxLCJiYXNlX2ZhcmUiOjM3MywidGF4Ijo1OTAuNTF9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjMuNTEsImJhc2VfZmFyZSI6MzczLCJ0YXgiOjU5MC41MSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjMuNTEsImJhc2VfZmFyZSI6MzczLCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "373.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 963.51, "base_fare": 373, "tax": 590.51, "gross": { "base_fare": "373.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2My41MSIsImJhc2VfZmFyZSI6IjM3My4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NjMuNTEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 963.51, "filter": { "id": "F1MS00008-21", "price": 963.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Light Bag", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T09:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606300920ams2026063011201662ams202606301410cdg2026063015352009cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-22", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-22", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p73", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-22", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H20M", "transit_time": "PT12H20M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p83", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 966.45, "gross_total": 966.45, "base_fare": 429, "tax": 537.45, "sell": { "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTY2LjQ1LCJiYXNlX2ZhcmUiOjQyOSwidGF4Ijo1MzcuNDV9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjYuNDUsImJhc2VfZmFyZSI6NDI5LCJ0YXgiOjUzNy40NSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjYuNDUsImJhc2VfZmFyZSI6NDI5LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "429.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45, "gross": { "base_fare": "429.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NjYuNDUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 966.45, "filter": { "id": "F1MS00008-22", "price": 966.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-23", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-23", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p74", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-23", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H30M", "transit_time": "PT15H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p83", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Light", "cabin_code": "LIGHTBAG", "booking_code": "LIGHTBAG", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 966.45, "gross_total": 966.45, "base_fare": 429, "tax": 537.45, "sell": { "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTY2LjQ1LCJiYXNlX2ZhcmUiOjQyOSwidGF4Ijo1MzcuNDV9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjYuNDUsImJhc2VfZmFyZSI6NDI5LCJ0YXgiOjUzNy40NSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NjYuNDUsImJhc2VfZmFyZSI6NDI5LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "429.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 966.45, "base_fare": 429, "tax": 537.45, "gross": { "base_fare": "429.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk2Ni40NSIsImJhc2VfZmFyZSI6IjQyOS4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NjYuNDUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 966.45, "filter": { "id": "F1MS00008-23", "price": 966.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-24", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-24", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-24", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H26M", "transit_time": "PT10H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p98", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 970.58, "gross_total": 970.58, "base_fare": 448, "tax": 522.58, "sell": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTcwLjU4LCJiYXNlX2ZhcmUiOjQ0OCwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NzAuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 970.58, "filter": { "id": "F1MS00008-24", "price": 970.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-25", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-25", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-25", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p99", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 970.58, "gross_total": 970.58, "base_fare": 448, "tax": 522.58, "sell": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTcwLjU4LCJiYXNlX2ZhcmUiOjQ0OCwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NzAuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 970.58, "filter": { "id": "F1MS00008-25", "price": 970.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-26", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-26", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-26", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p98", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 970.58, "gross_total": 970.58, "base_fare": 448, "tax": 522.58, "sell": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTcwLjU4LCJiYXNlX2ZhcmUiOjQ0OCwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NzAuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 970.58, "filter": { "id": "F1MS00008-26", "price": 970.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-27", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-27", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-27", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H26M", "transit_time": "PT20H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p99", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 970.58, "gross_total": 970.58, "base_fare": 448, "tax": 522.58, "sell": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6OTcwLjU4LCJiYXNlX2ZhcmUiOjQ0OCwidGF4Ijo1MjIuNTh9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo5NzAuNTgsImJhc2VfZmFyZSI6NDQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 970.58, "base_fare": 448, "tax": 522.58, "gross": { "base_fare": "448.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Ijk3MC41OCIsImJhc2VfZmFyZSI6IjQ0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjo5NzAuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 970.58, "filter": { "id": "F1MS00008-27", "price": 970.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-28", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-28", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p30", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-28", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT18H30M", "transit_time": "PT18H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1027.79, "gross_total": 1027.79, "base_fare": 489, "tax": 538.79, "sell": { "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAyNy43OSwiYmFzZV9mYXJlIjo0ODksInRheCI6NTM4Ljc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAyNy43OSwiYmFzZV9mYXJlIjo0ODksInRheCI6NTM4Ljc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMjcuNzksImJhc2VfZmFyZSI6NDg5LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "489.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79, "gross": { "base_fare": "489.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMjcuNzkiLCJiYXNlX2ZhcmUiOiI0ODkuMDAiLCJ0YXgiOiI1MzguNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0ODkuMDAiLCJ0YXgiOiI1MzguNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDI3Ljc5IiwiYmFzZV9mYXJlIjoiNDg5LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDg5LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAyNy43OSIsImJhc2VfZmFyZSI6IjQ4OS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDI3Ljc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1027.79, "filter": { "id": "F1MS00008-28", "price": 1027.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Standard", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-29", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-29", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p31", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-29", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H40M", "transit_time": "PT21H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1027.79, "gross_total": 1027.79, "base_fare": 489, "tax": 538.79, "sell": { "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAyNy43OSwiYmFzZV9mYXJlIjo0ODksInRheCI6NTM4Ljc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAyNy43OSwiYmFzZV9mYXJlIjo0ODksInRheCI6NTM4Ljc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMjcuNzksImJhc2VfZmFyZSI6NDg5LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "489.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1027.79, "base_fare": 489, "tax": 538.79, "gross": { "base_fare": "489.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMjcuNzkiLCJiYXNlX2ZhcmUiOiI0ODkuMDAiLCJ0YXgiOiI1MzguNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0ODkuMDAiLCJ0YXgiOiI1MzguNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDI3Ljc5IiwiYmFzZV9mYXJlIjoiNDg5LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDg5LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAyNy43OSIsImJhc2VfZmFyZSI6IjQ4OS4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDI3Ljc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1027.79, "filter": { "id": "F1MS00008-29", "price": 1027.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Standard", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-30", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-30", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p90", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-30", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H26M", "transit_time": "PT10H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p100", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1030.58, "gross_total": 1030.58, "base_fare": 508, "tax": 522.58, "sell": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMzAuNTgsImJhc2VfZmFyZSI6NTA4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMzAuNTgiLCJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDMwLjU4IiwiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAzMC41OCIsImJhc2VfZmFyZSI6IjUwOC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDMwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1030.58, "filter": { "id": "F1MS00008-30", "price": 1030.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-31", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-31", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p90", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-31", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p101", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1030.58, "gross_total": 1030.58, "base_fare": 508, "tax": 522.58, "sell": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMzAuNTgsImJhc2VfZmFyZSI6NTA4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMzAuNTgiLCJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDMwLjU4IiwiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAzMC41OCIsImJhc2VfZmFyZSI6IjUwOC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDMwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1030.58, "filter": { "id": "F1MS00008-31", "price": 1030.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-32", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-32", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p91", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-32", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p100", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1030.58, "gross_total": 1030.58, "base_fare": 508, "tax": 522.58, "sell": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMzAuNTgsImJhc2VfZmFyZSI6NTA4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMzAuNTgiLCJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDMwLjU4IiwiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAzMC41OCIsImJhc2VfZmFyZSI6IjUwOC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDMwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1030.58, "filter": { "id": "F1MS00008-32", "price": 1030.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-33", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-33", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p91", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-33", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H26M", "transit_time": "PT20H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p101", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1030.58, "gross_total": 1030.58, "base_fare": 508, "tax": 522.58, "sell": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTAzMC41OCwiYmFzZV9mYXJlIjo1MDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwMzAuNTgsImJhc2VfZmFyZSI6NTA4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1030.58, "base_fare": 508, "tax": 522.58, "gross": { "base_fare": "508.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwMzAuNTgiLCJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1MDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDMwLjU4IiwiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTA4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTAzMC41OCIsImJhc2VfZmFyZSI6IjUwOC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDMwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1030.58, "filter": { "id": "F1MS00008-33", "price": 1030.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-34", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-34", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-34", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT5H55M", "transit_time": "PT5H55M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p54", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1077.98, "gross_total": 1077.98, "base_fare": 490, "tax": 587.98, "sell": { "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA3Ny45OCwiYmFzZV9mYXJlIjo0OTAsInRheCI6NTg3Ljk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA3Ny45OCwiYmFzZV9mYXJlIjo0OTAsInRheCI6NTg3Ljk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwNzcuOTgsImJhc2VfZmFyZSI6NDkwLCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "490.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98, "gross": { "base_fare": "490.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwNzcuOTgiLCJiYXNlX2ZhcmUiOiI0OTAuMDAiLCJ0YXgiOiI1ODcuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0OTAuMDAiLCJ0YXgiOiI1ODcuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDc3Ljk4IiwiYmFzZV9mYXJlIjoiNDkwLjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDkwLjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA3Ny45OCIsImJhc2VfZmFyZSI6IjQ5MC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDc3Ljk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1077.98, "filter": { "id": "F1MS00008-34", "price": 1077.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Standard", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-35", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-35", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-35", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H5M", "transit_time": "PT9H5M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p54", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1077.98, "gross_total": 1077.98, "base_fare": 490, "tax": 587.98, "sell": { "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA3Ny45OCwiYmFzZV9mYXJlIjo0OTAsInRheCI6NTg3Ljk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA3Ny45OCwiYmFzZV9mYXJlIjo0OTAsInRheCI6NTg3Ljk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwNzcuOTgsImJhc2VfZmFyZSI6NDkwLCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "490.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1077.98, "base_fare": 490, "tax": 587.98, "gross": { "base_fare": "490.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwNzcuOTgiLCJiYXNlX2ZhcmUiOiI0OTAuMDAiLCJ0YXgiOiI1ODcuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0OTAuMDAiLCJ0YXgiOiI1ODcuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDc3Ljk4IiwiYmFzZV9mYXJlIjoiNDkwLjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDkwLjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA3Ny45OCIsImJhc2VfZmFyZSI6IjQ5MC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDc3Ljk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1077.98, "filter": { "id": "F1MS00008-35", "price": 1077.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Standard", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-36", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-36", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT6H10M", "transit_time": "PT6H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p60", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T13:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T15:55:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T17:50:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T19:05:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H15M", "distance": 259, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT04H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-36", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT8H35M", "transit_time": "PT8H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p69", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1081.51, "gross_total": 1081.51, "base_fare": 491, "tax": 590.51, "sell": { "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4MS41MSwiYmFzZV9mYXJlIjo0OTEsInRheCI6NTkwLjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4MS41MSwiYmFzZV9mYXJlIjo0OTEsInRheCI6NTkwLjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwODEuNTEsImJhc2VfZmFyZSI6NDkxLCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "491.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51, "gross": { "base_fare": "491.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwODEuNTEiLCJiYXNlX2ZhcmUiOiI0OTEuMDAiLCJ0YXgiOiI1OTAuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0OTEuMDAiLCJ0YXgiOiI1OTAuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDgxLjUxIiwiYmFzZV9mYXJlIjoiNDkxLjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDkxLjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA4MS41MSIsImJhc2VfZmFyZSI6IjQ5MS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDgxLjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1081.51, "filter": { "id": "F1MS00008-36", "price": 1081.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Standard", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T13:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301355ams2026063015551664ams202606301750cdg2026063019051411cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-37", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-37", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT10H35M", "transit_time": "PT10H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p61", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T09:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T11:20:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T14:10:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T15:35:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H25M", "distance": 259, "lay_over": "PT02H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "Airbus A320", "picture": "32A.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT07H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-37", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT13H0M", "transit_time": "PT13H0M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p69", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1081.51, "gross_total": 1081.51, "base_fare": 491, "tax": 590.51, "sell": { "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4MS41MSwiYmFzZV9mYXJlIjo0OTEsInRheCI6NTkwLjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4MS41MSwiYmFzZV9mYXJlIjo0OTEsInRheCI6NTkwLjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwODEuNTEsImJhc2VfZmFyZSI6NDkxLCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "491.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1081.51, "base_fare": 491, "tax": 590.51, "gross": { "base_fare": "491.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwODEuNTEiLCJiYXNlX2ZhcmUiOiI0OTEuMDAiLCJ0YXgiOiI1OTAuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0OTEuMDAiLCJ0YXgiOiI1OTAuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDgxLjUxIiwiYmFzZV9mYXJlIjoiNDkxLjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDkxLjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA4MS41MSIsImJhc2VfZmFyZSI6IjQ5MS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDgxLjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1081.51, "filter": { "id": "F1MS00008-37", "price": 1081.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Standard", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T09:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606300920ams2026063011201662ams202606301410cdg2026063015352009cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-38", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-38", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-38", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H20M", "transit_time": "PT12H20M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p84", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1083.45, "gross_total": 1083.45, "base_fare": 546, "tax": 537.45, "sell": { "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4My40NSwiYmFzZV9mYXJlIjo1NDYsInRheCI6NTM3LjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4My40NSwiYmFzZV9mYXJlIjo1NDYsInRheCI6NTM3LjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwODMuNDUsImJhc2VfZmFyZSI6NTQ2LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "546.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45, "gross": { "base_fare": "546.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwODMuNDUiLCJiYXNlX2ZhcmUiOiI1NDYuMDAiLCJ0YXgiOiI1MzcuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1NDYuMDAiLCJ0YXgiOiI1MzcuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDgzLjQ1IiwiYmFzZV9mYXJlIjoiNTQ2LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTQ2LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA4My40NSIsImJhc2VfZmFyZSI6IjU0Ni4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDgzLjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1083.45, "filter": { "id": "F1MS00008-38", "price": 1083.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Standard", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-39", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-39", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-39", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H30M", "transit_time": "PT15H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p84", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Standard", "cabin_code": "STANDARD3", "booking_code": "STANDARD3", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1083.45, "gross_total": 1083.45, "base_fare": 546, "tax": 537.45, "sell": { "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4My40NSwiYmFzZV9mYXJlIjo1NDYsInRheCI6NTM3LjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTA4My40NSwiYmFzZV9mYXJlIjo1NDYsInRheCI6NTM3LjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEwODMuNDUsImJhc2VfZmFyZSI6NTQ2LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "546.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1083.45, "base_fare": 546, "tax": 537.45, "gross": { "base_fare": "546.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEwODMuNDUiLCJiYXNlX2ZhcmUiOiI1NDYuMDAiLCJ0YXgiOiI1MzcuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1NDYuMDAiLCJ0YXgiOiI1MzcuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMDgzLjQ1IiwiYmFzZV9mYXJlIjoiNTQ2LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTQ2LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTA4My40NSIsImJhc2VfZmFyZSI6IjU0Ni4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMDgzLjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1083.45, "filter": { "id": "F1MS00008-39", "price": 1083.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Standard", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-40", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-40", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p32", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-40", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT18H30M", "transit_time": "PT18H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1194.79, "gross_total": 1194.79, "base_fare": 656, "tax": 538.79, "sell": { "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE5NC43OSwiYmFzZV9mYXJlIjo2NTYsInRheCI6NTM4Ljc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE5NC43OSwiYmFzZV9mYXJlIjo2NTYsInRheCI6NTM4Ljc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExOTQuNzksImJhc2VfZmFyZSI6NjU2LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "656.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79, "gross": { "base_fare": "656.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExOTQuNzkiLCJiYXNlX2ZhcmUiOiI2NTYuMDAiLCJ0YXgiOiI1MzguNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTYuMDAiLCJ0YXgiOiI1MzguNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTk0Ljc5IiwiYmFzZV9mYXJlIjoiNjU2LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU2LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE5NC43OSIsImJhc2VfZmFyZSI6IjY1Ni4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTk0Ljc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1194.79, "filter": { "id": "F1MS00008-40", "price": 1194.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-41", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-41", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p33", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-41", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H40M", "transit_time": "PT21H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1194.79, "gross_total": 1194.79, "base_fare": 656, "tax": 538.79, "sell": { "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE5NC43OSwiYmFzZV9mYXJlIjo2NTYsInRheCI6NTM4Ljc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE5NC43OSwiYmFzZV9mYXJlIjo2NTYsInRheCI6NTM4Ljc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExOTQuNzksImJhc2VfZmFyZSI6NjU2LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "656.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1194.79, "base_fare": 656, "tax": 538.79, "gross": { "base_fare": "656.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExOTQuNzkiLCJiYXNlX2ZhcmUiOiI2NTYuMDAiLCJ0YXgiOiI1MzguNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTYuMDAiLCJ0YXgiOiI1MzguNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTk0Ljc5IiwiYmFzZV9mYXJlIjoiNjU2LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU2LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE5NC43OSIsImJhc2VfZmFyZSI6IjY1Ni4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTk0Ljc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1194.79, "filter": { "id": "F1MS00008-41", "price": 1194.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-42", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-42", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-42", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT5H55M", "transit_time": "PT5H55M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1244.98, "gross_total": 1244.98, "base_fare": 657, "tax": 587.98, "sell": { "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0NC45OCwiYmFzZV9mYXJlIjo2NTcsInRheCI6NTg3Ljk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0NC45OCwiYmFzZV9mYXJlIjo2NTcsInRheCI6NTg3Ljk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNDQuOTgsImJhc2VfZmFyZSI6NjU3LCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "657.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98, "gross": { "base_fare": "657.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNDQuOTgiLCJiYXNlX2ZhcmUiOiI2NTcuMDAiLCJ0YXgiOiI1ODcuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTcuMDAiLCJ0YXgiOiI1ODcuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjQ0Ljk4IiwiYmFzZV9mYXJlIjoiNjU3LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU3LjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI0NC45OCIsImJhc2VfZmFyZSI6IjY1Ny4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjQ0Ljk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1244.98, "filter": { "id": "F1MS00008-42", "price": 1244.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Flex", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-43", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-43", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-43", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H5M", "transit_time": "PT9H5M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1244.98, "gross_total": 1244.98, "base_fare": 657, "tax": 587.98, "sell": { "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0NC45OCwiYmFzZV9mYXJlIjo2NTcsInRheCI6NTg3Ljk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0NC45OCwiYmFzZV9mYXJlIjo2NTcsInRheCI6NTg3Ljk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNDQuOTgsImJhc2VfZmFyZSI6NjU3LCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "657.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1244.98, "base_fare": 657, "tax": 587.98, "gross": { "base_fare": "657.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNDQuOTgiLCJiYXNlX2ZhcmUiOiI2NTcuMDAiLCJ0YXgiOiI1ODcuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTcuMDAiLCJ0YXgiOiI1ODcuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjQ0Ljk4IiwiYmFzZV9mYXJlIjoiNjU3LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU3LjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI0NC45OCIsImJhc2VfZmFyZSI6IjY1Ny4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjQ0Ljk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1244.98, "filter": { "id": "F1MS00008-43", "price": 1244.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Flex", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-44", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-44", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT6H10M", "transit_time": "PT6H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p62", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T13:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T15:55:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T17:50:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T19:05:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H15M", "distance": 259, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT04H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-44", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT8H35M", "transit_time": "PT8H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p70", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1248.51, "gross_total": 1248.51, "base_fare": 658, "tax": 590.51, "sell": { "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0OC41MSwiYmFzZV9mYXJlIjo2NTgsInRheCI6NTkwLjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0OC41MSwiYmFzZV9mYXJlIjo2NTgsInRheCI6NTkwLjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNDguNTEsImJhc2VfZmFyZSI6NjU4LCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "658.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51, "gross": { "base_fare": "658.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNDguNTEiLCJiYXNlX2ZhcmUiOiI2NTguMDAiLCJ0YXgiOiI1OTAuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTguMDAiLCJ0YXgiOiI1OTAuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjQ4LjUxIiwiYmFzZV9mYXJlIjoiNjU4LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU4LjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI0OC41MSIsImJhc2VfZmFyZSI6IjY1OC4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjQ4LjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1248.51, "filter": { "id": "F1MS00008-44", "price": 1248.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Flex", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T13:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301355ams2026063015551664ams202606301750cdg2026063019051411cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-45", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-45", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT10H35M", "transit_time": "PT10H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p63", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T09:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T11:20:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T14:10:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T15:35:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H25M", "distance": 259, "lay_over": "PT02H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "Airbus A320", "picture": "32A.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT07H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-45", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT13H0M", "transit_time": "PT13H0M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p70", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1248.51, "gross_total": 1248.51, "base_fare": 658, "tax": 590.51, "sell": { "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0OC41MSwiYmFzZV9mYXJlIjo2NTgsInRheCI6NTkwLjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI0OC41MSwiYmFzZV9mYXJlIjo2NTgsInRheCI6NTkwLjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNDguNTEsImJhc2VfZmFyZSI6NjU4LCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "658.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1248.51, "base_fare": 658, "tax": 590.51, "gross": { "base_fare": "658.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNDguNTEiLCJiYXNlX2ZhcmUiOiI2NTguMDAiLCJ0YXgiOiI1OTAuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTguMDAiLCJ0YXgiOiI1OTAuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjQ4LjUxIiwiYmFzZV9mYXJlIjoiNjU4LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjU4LjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI0OC41MSIsImJhc2VfZmFyZSI6IjY1OC4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjQ4LjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1248.51, "filter": { "id": "F1MS00008-45", "price": 1248.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Flex", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T09:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606300920ams2026063011201662ams202606301410cdg2026063015352009cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-46", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-46", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-46", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H20M", "transit_time": "PT12H20M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1251.45, "gross_total": 1251.45, "base_fare": 714, "tax": 537.45, "sell": { "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI1MS40NSwiYmFzZV9mYXJlIjo3MTQsInRheCI6NTM3LjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI1MS40NSwiYmFzZV9mYXJlIjo3MTQsInRheCI6NTM3LjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNTEuNDUsImJhc2VfZmFyZSI6NzE0LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "714.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45, "gross": { "base_fare": "714.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNTEuNDUiLCJiYXNlX2ZhcmUiOiI3MTQuMDAiLCJ0YXgiOiI1MzcuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3MTQuMDAiLCJ0YXgiOiI1MzcuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjUxLjQ1IiwiYmFzZV9mYXJlIjoiNzE0LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzE0LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI1MS40NSIsImJhc2VfZmFyZSI6IjcxNC4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjUxLjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1251.45, "filter": { "id": "F1MS00008-46", "price": 1251.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-47", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-47", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-47", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H30M", "transit_time": "PT15H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Flex", "cabin_code": "FLEX1", "booking_code": "FLEX1", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1251.45, "gross_total": 1251.45, "base_fare": 714, "tax": 537.45, "sell": { "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI1MS40NSwiYmFzZV9mYXJlIjo3MTQsInRheCI6NTM3LjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI1MS40NSwiYmFzZV9mYXJlIjo3MTQsInRheCI6NTM3LjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNTEuNDUsImJhc2VfZmFyZSI6NzE0LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "714.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1251.45, "base_fare": 714, "tax": 537.45, "gross": { "base_fare": "714.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNTEuNDUiLCJiYXNlX2ZhcmUiOiI3MTQuMDAiLCJ0YXgiOiI1MzcuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3MTQuMDAiLCJ0YXgiOiI1MzcuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjUxLjQ1IiwiYmFzZV9mYXJlIjoiNzE0LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzE0LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI1MS40NSIsImJhc2VfZmFyZSI6IjcxNC4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjUxLjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1251.45, "filter": { "id": "F1MS00008-47", "price": 1251.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-48", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-48", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p92", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-48", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H26M", "transit_time": "PT10H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p102", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1270.58, "gross_total": 1270.58, "base_fare": 748, "tax": 522.58, "sell": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNzAuNTgsImJhc2VfZmFyZSI6NzQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNzAuNTgiLCJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjcwLjU4IiwiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI3MC41OCIsImJhc2VfZmFyZSI6Ijc0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjcwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1270.58, "filter": { "id": "F1MS00008-48", "price": 1270.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-49", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-49", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p92", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-49", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p103", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1270.58, "gross_total": 1270.58, "base_fare": 748, "tax": 522.58, "sell": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNzAuNTgsImJhc2VfZmFyZSI6NzQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNzAuNTgiLCJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjcwLjU4IiwiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI3MC41OCIsImJhc2VfZmFyZSI6Ijc0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjcwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1270.58, "filter": { "id": "F1MS00008-49", "price": 1270.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Eco Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-50", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-50", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p93", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-50", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p102", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1270.58, "gross_total": 1270.58, "base_fare": 748, "tax": 522.58, "sell": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNzAuNTgsImJhc2VfZmFyZSI6NzQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNzAuNTgiLCJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjcwLjU4IiwiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI3MC41OCIsImJhc2VfZmFyZSI6Ijc0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjcwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1270.58, "filter": { "id": "F1MS00008-50", "price": 1270.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-51", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-51", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p93", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-51", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H26M", "transit_time": "PT20H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p103", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1270.58, "gross_total": 1270.58, "base_fare": 748, "tax": 522.58, "sell": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTI3MC41OCwiYmFzZV9mYXJlIjo3NDgsInRheCI6NTIyLjU4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEyNzAuNTgsImJhc2VfZmFyZSI6NzQ4LCJ0YXgiOjUyMi41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1270.58, "base_fare": 748, "tax": 522.58, "gross": { "base_fare": "748.00", "tax": "522.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEyNzAuNTgiLCJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NDguMDAiLCJ0YXgiOiI1MjIuNTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMjcwLjU4IiwiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzQ4LjAwIiwidGF4IjoiNTIyLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTI3MC41OCIsImJhc2VfZmFyZSI6Ijc0OC4wMCIsInRheCI6IjUyMi41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMjcwLjU4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1270.58, "filter": { "id": "F1MS00008-51", "price": 1270.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Eco Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-52", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-52", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-52", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT18H30M", "transit_time": "PT18H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1413.79, "gross_total": 1413.79, "base_fare": 771, "tax": 642.79, "sell": { "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQxMy43OSwiYmFzZV9mYXJlIjo3NzEsInRheCI6NjQyLjc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQxMy43OSwiYmFzZV9mYXJlIjo3NzEsInRheCI6NjQyLjc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0MTMuNzksImJhc2VfZmFyZSI6NzcxLCJ0YXgiOjY0Mi43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "771.00", "tax": "642.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79, "gross": { "base_fare": "771.00", "tax": "642.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0MTMuNzkiLCJiYXNlX2ZhcmUiOiI3NzEuMDAiLCJ0YXgiOiI2NDIuNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzEuMDAiLCJ0YXgiOiI2NDIuNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDEzLjc5IiwiYmFzZV9mYXJlIjoiNzcxLjAwIiwidGF4IjoiNjQyLjc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzcxLjAwIiwidGF4IjoiNjQyLjc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQxMy43OSIsImJhc2VfZmFyZSI6Ijc3MS4wMCIsInRheCI6IjY0Mi43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDEzLjc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1413.79, "filter": { "id": "F1MS00008-52", "price": 1413.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Premium Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-53", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-53", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p37", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-53", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H40M", "transit_time": "PT21H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1413.79, "gross_total": 1413.79, "base_fare": 771, "tax": 642.79, "sell": { "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQxMy43OSwiYmFzZV9mYXJlIjo3NzEsInRheCI6NjQyLjc5fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQxMy43OSwiYmFzZV9mYXJlIjo3NzEsInRheCI6NjQyLjc5LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0MTMuNzksImJhc2VfZmFyZSI6NzcxLCJ0YXgiOjY0Mi43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "771.00", "tax": "642.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1413.79, "base_fare": 771, "tax": 642.79, "gross": { "base_fare": "771.00", "tax": "642.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0MTMuNzkiLCJiYXNlX2ZhcmUiOiI3NzEuMDAiLCJ0YXgiOiI2NDIuNzkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzEuMDAiLCJ0YXgiOiI2NDIuNzkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDEzLjc5IiwiYmFzZV9mYXJlIjoiNzcxLjAwIiwidGF4IjoiNjQyLjc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzcxLjAwIiwidGF4IjoiNjQyLjc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQxMy43OSIsImJhc2VfZmFyZSI6Ijc3MS4wMCIsInRheCI6IjY0Mi43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDEzLjc5LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1413.79, "filter": { "id": "F1MS00008-53", "price": 1413.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Premium Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-54", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-54", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p51", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-54", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT5H55M", "transit_time": "PT5H55M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1463.98, "gross_total": 1463.98, "base_fare": 772, "tax": 691.98, "sell": { "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2My45OCwiYmFzZV9mYXJlIjo3NzIsInRheCI6NjkxLjk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2My45OCwiYmFzZV9mYXJlIjo3NzIsInRheCI6NjkxLjk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0NjMuOTgsImJhc2VfZmFyZSI6NzcyLCJ0YXgiOjY5MS45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "772.00", "tax": "691.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98, "gross": { "base_fare": "772.00", "tax": "691.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0NjMuOTgiLCJiYXNlX2ZhcmUiOiI3NzIuMDAiLCJ0YXgiOiI2OTEuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzIuMDAiLCJ0YXgiOiI2OTEuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDYzLjk4IiwiYmFzZV9mYXJlIjoiNzcyLjAwIiwidGF4IjoiNjkxLjk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzcyLjAwIiwidGF4IjoiNjkxLjk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQ2My45OCIsImJhc2VfZmFyZSI6Ijc3Mi4wMCIsInRheCI6IjY5MS45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDYzLjk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1463.98, "filter": { "id": "F1MS00008-54", "price": 1463.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Premium Light", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-55", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-55", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p52", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-55", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H5M", "transit_time": "PT9H5M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1463.98, "gross_total": 1463.98, "base_fare": 772, "tax": 691.98, "sell": { "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2My45OCwiYmFzZV9mYXJlIjo3NzIsInRheCI6NjkxLjk4fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2My45OCwiYmFzZV9mYXJlIjo3NzIsInRheCI6NjkxLjk4LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0NjMuOTgsImJhc2VfZmFyZSI6NzcyLCJ0YXgiOjY5MS45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "772.00", "tax": "691.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1463.98, "base_fare": 772, "tax": 691.98, "gross": { "base_fare": "772.00", "tax": "691.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0NjMuOTgiLCJiYXNlX2ZhcmUiOiI3NzIuMDAiLCJ0YXgiOiI2OTEuOTgiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzIuMDAiLCJ0YXgiOiI2OTEuOTgiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDYzLjk4IiwiYmFzZV9mYXJlIjoiNzcyLjAwIiwidGF4IjoiNjkxLjk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzcyLjAwIiwidGF4IjoiNjkxLjk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQ2My45OCIsImJhc2VfZmFyZSI6Ijc3Mi4wMCIsInRheCI6IjY5MS45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDYzLjk4LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1463.98, "filter": { "id": "F1MS00008-55", "price": 1463.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Premium Light", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-56", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-56", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT6H10M", "transit_time": "PT6H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p66", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T13:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T15:55:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T17:50:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T19:05:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H15M", "distance": 259, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT04H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-56", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT8H35M", "transit_time": "PT8H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p72", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1467.51, "gross_total": 1467.51, "base_fare": 773, "tax": 694.51, "sell": { "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2Ny41MSwiYmFzZV9mYXJlIjo3NzMsInRheCI6Njk0LjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2Ny41MSwiYmFzZV9mYXJlIjo3NzMsInRheCI6Njk0LjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0NjcuNTEsImJhc2VfZmFyZSI6NzczLCJ0YXgiOjY5NC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "773.00", "tax": "694.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51, "gross": { "base_fare": "773.00", "tax": "694.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0NjcuNTEiLCJiYXNlX2ZhcmUiOiI3NzMuMDAiLCJ0YXgiOiI2OTQuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzMuMDAiLCJ0YXgiOiI2OTQuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDY3LjUxIiwiYmFzZV9mYXJlIjoiNzczLjAwIiwidGF4IjoiNjk0LjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzczLjAwIiwidGF4IjoiNjk0LjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQ2Ny41MSIsImJhc2VfZmFyZSI6Ijc3My4wMCIsInRheCI6IjY5NC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDY3LjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1467.51, "filter": { "id": "F1MS00008-56", "price": 1467.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Premium Light", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T13:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301355ams2026063015551664ams202606301750cdg2026063019051411cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-57", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-57", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT10H35M", "transit_time": "PT10H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p67", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T09:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T11:20:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T14:10:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T15:35:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H25M", "distance": 259, "lay_over": "PT02H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "Airbus A320", "picture": "32A.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT07H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-57", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT13H0M", "transit_time": "PT13H0M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p72", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1467.51, "gross_total": 1467.51, "base_fare": 773, "tax": 694.51, "sell": { "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2Ny41MSwiYmFzZV9mYXJlIjo3NzMsInRheCI6Njk0LjUxfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTQ2Ny41MSwiYmFzZV9mYXJlIjo3NzMsInRheCI6Njk0LjUxLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE0NjcuNTEsImJhc2VfZmFyZSI6NzczLCJ0YXgiOjY5NC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "773.00", "tax": "694.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1467.51, "base_fare": 773, "tax": 694.51, "gross": { "base_fare": "773.00", "tax": "694.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE0NjcuNTEiLCJiYXNlX2ZhcmUiOiI3NzMuMDAiLCJ0YXgiOiI2OTQuNTEiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI3NzMuMDAiLCJ0YXgiOiI2OTQuNTEiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNDY3LjUxIiwiYmFzZV9mYXJlIjoiNzczLjAwIiwidGF4IjoiNjk0LjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNzczLjAwIiwidGF4IjoiNjk0LjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTQ2Ny41MSIsImJhc2VfZmFyZSI6Ijc3My4wMCIsInRheCI6IjY5NC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNDY3LjUxLCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1467.51, "filter": { "id": "F1MS00008-57", "price": 1467.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Premium Light", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T09:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606300920ams2026063011201662ams202606301410cdg2026063015352009cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-58", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-58", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p81", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-58", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H20M", "transit_time": "PT12H20M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1559.45, "gross_total": 1559.45, "base_fare": 918, "tax": 641.45, "sell": { "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1OS40NSwiYmFzZV9mYXJlIjo5MTgsInRheCI6NjQxLjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1OS40NSwiYmFzZV9mYXJlIjo5MTgsInRheCI6NjQxLjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTkuNDUsImJhc2VfZmFyZSI6OTE4LCJ0YXgiOjY0MS40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "918.00", "tax": "641.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45, "gross": { "base_fare": "918.00", "tax": "641.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTkuNDUiLCJiYXNlX2ZhcmUiOiI5MTguMDAiLCJ0YXgiOiI2NDEuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI5MTguMDAiLCJ0YXgiOiI2NDEuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNTU5LjQ1IiwiYmFzZV9mYXJlIjoiOTE4LjAwIiwidGF4IjoiNjQxLjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiOTE4LjAwIiwidGF4IjoiNjQxLjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1OS40NSIsImJhc2VfZmFyZSI6IjkxOC4wMCIsInRheCI6IjY0MS40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNTU5LjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1559.45, "filter": { "id": "F1MS00008-58", "price": 1559.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Premium Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-59", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-59", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p82", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-59", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H30M", "transit_time": "PT15H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Premium Light", "cabin_code": "PREMLIGHTB", "booking_code": "PREMLIGHTB", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1559.45, "gross_total": 1559.45, "base_fare": 918, "tax": 641.45, "sell": { "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1OS40NSwiYmFzZV9mYXJlIjo5MTgsInRheCI6NjQxLjQ1fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1OS40NSwiYmFzZV9mYXJlIjo5MTgsInRheCI6NjQxLjQ1LCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTkuNDUsImJhc2VfZmFyZSI6OTE4LCJ0YXgiOjY0MS40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "918.00", "tax": "641.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1559.45, "base_fare": 918, "tax": 641.45, "gross": { "base_fare": "918.00", "tax": "641.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTkuNDUiLCJiYXNlX2ZhcmUiOiI5MTguMDAiLCJ0YXgiOiI2NDEuNDUiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI5MTguMDAiLCJ0YXgiOiI2NDEuNDUiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxNTU5LjQ1IiwiYmFzZV9mYXJlIjoiOTE4LjAwIiwidGF4IjoiNjQxLjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiOTE4LjAwIiwidGF4IjoiNjQxLjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1OS40NSIsImJhc2VfZmFyZSI6IjkxOC4wMCIsInRheCI6IjY0MS40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNTU5LjQ1LCJ0YXhCcmVha2Rvd24iOnsiQkQiOnsiYW1vdW50IjoiMC4wMCJ9LCJVVCI6eyJhbW91bnQiOiIwLjAwIn0sIkU1Ijp7ImFtb3VudCI6IjAuMDAifSwiWVEiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUiI6eyJhbW91bnQiOiIwLjAwIn0sIk90aGVyIjp7ImFtb3VudCI6IjAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbXX19LCJkaXNjb3VudF9jb21pc3Npb25fdGl0bGUiOm51bGwsImRpc2NvdW50X2NvbWlzc2lvbl9yYXRpbyI6MCwiZHluYW1pY19tYXJrdXBfdHlwZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfdGl0bGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3JhdGlvIjpudWxsLCJhcHBsaWNhYmxlX2NvbWlzc2lvbiI6bnVsbCwiYXBwbGljYWJsZV9keW5hbWljX21hcmt1cCI6bnVsbH0=" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1559.45, "filter": { "id": "F1MS00008-59", "price": 1559.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Premium Light", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-60", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-60", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p94", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-60", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p104", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2223.58, "gross_total": 2223.58, "base_fare": 1463, "tax": 760.58, "sell": { "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjIyMy41OCwiYmFzZV9mYXJlIjoxNDYzLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIyMjMuNTgsImJhc2VfZmFyZSI6MTQ2MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjIyMy41OCwiYmFzZV9mYXJlIjoxNDYzLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1463.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58, "gross": { "base_fare": "1463.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ2My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ2My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIyMjMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2223.58, "filter": { "id": "F1MS00008-60", "price": 2223.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-61", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-61", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p94", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-61", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H26M", "transit_time": "PT20H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2223.58, "gross_total": 2223.58, "base_fare": 1463, "tax": 760.58, "sell": { "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjIyMy41OCwiYmFzZV9mYXJlIjoxNDYzLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIyMjMuNTgsImJhc2VfZmFyZSI6MTQ2MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjIyMy41OCwiYmFzZV9mYXJlIjoxNDYzLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1463.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2223.58, "base_fare": 1463, "tax": 760.58, "gross": { "base_fare": "1463.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ2My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ2My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIyMjMuNTgiLCJiYXNlX2ZhcmUiOiIxNDYzLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIyMjMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2223.58, "filter": { "id": "F1MS00008-61", "price": 2223.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-62", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-62", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p4", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-62", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p10", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2333.58, "gross_total": 2333.58, "base_fare": 1573, "tax": 760.58, "sell": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzMzMuNTgsImJhc2VfZmFyZSI6MTU3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzMzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2333.58, "filter": { "id": "F1MS00008-62", "price": 2333.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-63", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-63", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p4", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-63", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D8H6M", "transit_time": "PT1D8H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p11", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2333.58, "gross_total": 2333.58, "base_fare": 1573, "tax": 760.58, "sell": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzMzMuNTgsImJhc2VfZmFyZSI6MTU3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzMzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2333.58, "filter": { "id": "F1MS00008-63", "price": 2333.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-64", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-64", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p18", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-64", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p24", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2333.58, "gross_total": 2333.58, "base_fare": 1573, "tax": 760.58, "sell": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzMzMuNTgsImJhc2VfZmFyZSI6MTU3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzMzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2333.58, "filter": { "id": "F1MS00008-64", "price": 2333.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-65", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-65", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H10M", "transit_time": "PT19H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p18", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT19H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-65", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H35M", "transit_time": "PT1D1H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p25", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2333.58, "gross_total": 2333.58, "base_fare": 1573, "tax": 760.58, "sell": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzMzMuNTgsImJhc2VfZmFyZSI6MTU3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjMzMy41OCwiYmFzZV9mYXJlIjoxNTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2333.58, "base_fare": 1573, "tax": 760.58, "gross": { "base_fare": "1573.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTU3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzMzMuNTgiLCJiYXNlX2ZhcmUiOiIxNTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzMzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2333.58, "filter": { "id": "F1MS00008-65", "price": 2333.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-66", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-66", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p95", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-66", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H26M", "transit_time": "PT10H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2384.58, "gross_total": 2384.58, "base_fare": 1624, "tax": 760.58, "sell": { "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjM4NC41OCwiYmFzZV9mYXJlIjoxNjI0LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzODQuNTgsImJhc2VfZmFyZSI6MTYyNCwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjM4NC41OCwiYmFzZV9mYXJlIjoxNjI0LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1624.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58, "gross": { "base_fare": "1624.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTYyNC4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTYyNC4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzODQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2384.58, "filter": { "id": "F1MS00008-66", "price": 2384.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-67", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-67", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p95", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-67", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2384.58, "gross_total": 2384.58, "base_fare": 1624, "tax": 760.58, "sell": { "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjM4NC41OCwiYmFzZV9mYXJlIjoxNjI0LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjIzODQuNTgsImJhc2VfZmFyZSI6MTYyNCwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjM4NC41OCwiYmFzZV9mYXJlIjoxNjI0LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1624.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2384.58, "base_fare": 1624, "tax": 760.58, "gross": { "base_fare": "1624.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTYyNC4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTYyNC4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjIzODQuNTgiLCJiYXNlX2ZhcmUiOiIxNjI0LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjIzODQuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2384.58, "filter": { "id": "F1MS00008-67", "price": 2384.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-68", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-68", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p5", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-68", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H6M", "transit_time": "PT22H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p12", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2506.58, "gross_total": 2506.58, "base_fare": 1746, "tax": 760.58, "sell": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI1MDYuNTgsImJhc2VfZmFyZSI6MTc0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI1MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2506.58, "filter": { "id": "F1MS00008-68", "price": 2506.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-69", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-69", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p5", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-69", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H6M", "transit_time": "PT1D3H6M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p13", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2506.58, "gross_total": 2506.58, "base_fare": 1746, "tax": 760.58, "sell": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI1MDYuNTgsImJhc2VfZmFyZSI6MTc0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI1MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2506.58, "filter": { "id": "F1MS00008-69", "price": 2506.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-70", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-70", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p19", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-70", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H35M", "transit_time": "PT15H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p26", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT01H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2506.58, "gross_total": 2506.58, "base_fare": 1746, "tax": 760.58, "sell": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI1MDYuNTgsImJhc2VfZmFyZSI6MTc0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI1MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2506.58, "filter": { "id": "F1MS00008-70", "price": 2506.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-30T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607300755blq202607301155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-71", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-71", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H10M", "transit_time": "PT14H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p19", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-01T10:20:00", "origin_terminal": "2", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T12:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT14H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "738", "name": "Boeing 737-800", "picture": "738.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "9000" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-71", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H35M", "transit_time": "PT20H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p27", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T02:25:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T06:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H5M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "789", "name": "Boeing 787-9", "picture": "789.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "500" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-30T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-30", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2506.58, "gross_total": 2506.58, "base_fare": 1746, "tax": 760.58, "sell": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI1MDYuNTgsImJhc2VfZmFyZSI6MTc0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjUwNi41OCwiYmFzZV9mYXJlIjoxNzQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2506.58, "base_fare": 1746, "tax": 760.58, "gross": { "base_fare": "1746.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTc0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI1MDYuNTgiLCJiYXNlX2ZhcmUiOiIxNzQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI1MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2506.58, "filter": { "id": "F1MS00008-71", "price": 2506.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Classic", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-30T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202607011020dss2026070112359000dss202607300225cmn202607300630500cmn202607301255blq202607301655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-72", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-72", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p96", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-72", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2733.58, "gross_total": 2733.58, "base_fare": 1973, "tax": 760.58, "sell": { "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjczMy41OCwiYmFzZV9mYXJlIjoxOTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI3MzMuNTgsImJhc2VfZmFyZSI6MTk3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjczMy41OCwiYmFzZV9mYXJlIjoxOTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1973.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58, "gross": { "base_fare": "1973.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTk3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTk3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI3MzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2733.58, "filter": { "id": "F1MS00008-72", "price": 2733.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-73", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-73", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H30M", "transit_time": "PT7H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p96", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "947" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT07H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-73", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H26M", "transit_time": "PT20H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2733.58, "gross_total": 2733.58, "base_fare": 1973, "tax": 760.58, "sell": { "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjczMy41OCwiYmFzZV9mYXJlIjoxOTczLCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI3MzMuNTgsImJhc2VfZmFyZSI6MTk3MywidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjczMy41OCwiYmFzZV9mYXJlIjoxOTczLCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1973.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2733.58, "base_fare": 1973, "tax": 760.58, "gross": { "base_fare": "1973.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTk3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTk3My4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI3MzMuNTgiLCJiYXNlX2ZhcmUiOiIxOTczLjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI3MzMuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2733.58, "filter": { "id": "F1MS00008-73", "price": 2733.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "73H", "aircraft_name": "Boeing 737", "cabin_class": "Bus Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301255cmn202606301510947cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-74", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-74", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p97", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-74", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H26M", "transit_time": "PT10H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT07H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "946" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2906.58, "gross_total": 2906.58, "base_fare": 2146, "tax": 760.58, "sell": { "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjkwNi41OCwiYmFzZV9mYXJlIjoyMTQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI5MDYuNTgsImJhc2VfZmFyZSI6MjE0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjkwNi41OCwiYmFzZV9mYXJlIjoyMTQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "2146.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58, "gross": { "base_fare": "2146.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjE0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjE0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI5MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2906.58, "filter": { "id": "F1MS00008-74", "price": 2906.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607310755blq202607311155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-75", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-75", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H30M", "transit_time": "PT2H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p97", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-06-30T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1270, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "953" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-06-30T22:40:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "DSS", "arrival_time": "2026-07-01T00:55:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT2H15M", "distance": 1426, "lay_over": "PT02H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "788", "name": "Boeing 787-8", "picture": "788.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-75", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H26M", "transit_time": "PT15H26M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T19:50:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CMN", "arrival_time": "2026-07-30T23:59:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-07-30", "flight_time": "PT4H9M", "distance": 1426, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CMN", "departure_time": "2026-07-31T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-07-31T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "7M8", "name": "Boeing 737Max", "picture": "7M8.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 3, "weight": 31.75, "unit": "kg", "title": "3 pieces 31.75 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 2906.58, "gross_total": 2906.58, "base_fare": 2146, "tax": 760.58, "sell": { "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjkwNi41OCwiYmFzZV9mYXJlIjoyMTQ2LCJ0YXgiOjc2MC41OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjI5MDYuNTgsImJhc2VfZmFyZSI6MjE0NiwidGF4Ijo3NjAuNTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MjkwNi41OCwiYmFzZV9mYXJlIjoyMTQ2LCJ0YXgiOjc2MC41OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "2146.00", "tax": "760.58", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 2906.58, "base_fare": 2146, "tax": 760.58, "gross": { "base_fare": "2146.00", "tax": "760.58", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjE0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjE0Ni4wMCIsInRheCI6Ijc2MC41OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjI5MDYuNTgiLCJiYXNlX2ZhcmUiOiIyMTQ2LjAwIiwidGF4IjoiNzYwLjU4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjI5MDYuNTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 2906.58, "filter": { "id": "F1MS00008-75", "price": 2906.58, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AT", "carrier_marketing": "AT", "aircraft": "7M8", "aircraft_name": "Boeing 737Max", "cabin_class": "Bus Flex Premium", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301755cmn202606302010953cmn202606302240dss202607010055501dss202607301950cmn202607302359502cmn202607311255blq202607311655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-76", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-76", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p79", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-76", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H20M", "transit_time": "PT12H20M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3864.45, "gross_total": 3864.45, "base_fare": 3327, "tax": 537.45, "sell": { "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NC40NSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzNy40NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM4NjQuNDUsImJhc2VfZmFyZSI6MzMyNywidGF4Ijo1MzcuNDUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NC40NSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3327.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45, "gross": { "base_fare": "3327.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM4NjQuNDUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3864.45, "filter": { "id": "F1MS00008-76", "price": 3864.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Full Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-77", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-77", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p80", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-77", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT15H30M", "transit_time": "PT15H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T15:20:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T17:05:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H45M", "distance": 515, "lay_over": "PT08H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1328" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3864.45, "gross_total": 3864.45, "base_fare": 3327, "tax": 537.45, "sell": { "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NC40NSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzNy40NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM4NjQuNDUsImJhc2VfZmFyZSI6MzMyNywidGF4Ijo1MzcuNDUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NC40NSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzNy40NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3327.00", "tax": "537.45", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3864.45, "base_fare": 3327, "tax": 537.45, "gross": { "base_fare": "3327.00", "tax": "537.45", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzNy40NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjQuNDUiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM3LjQ1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM4NjQuNDUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3864.45, "filter": { "id": "F1MS00008-77", "price": 3864.45, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Full Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T17:05:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607311520blq2026073117051328", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-78", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-78", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p34", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-78", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT18H30M", "transit_time": "PT18H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3865.79, "gross_total": 3865.79, "base_fare": 3327, "tax": 538.79, "sell": { "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NS43OSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzOC43OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM4NjUuNzksImJhc2VfZmFyZSI6MzMyNywidGF4Ijo1MzguNzksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NS43OSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3327.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79, "gross": { "base_fare": "3327.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM4NjUuNzksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3865.79, "filter": { "id": "F1MS00008-78", "price": 3865.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Full Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-79", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-79", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-79", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H40M", "transit_time": "PT21H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T21:30:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "BLQ", "arrival_time": "2026-07-31T23:10:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": 515, "lay_over": "PT15H00M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1028" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3865.79, "gross_total": 3865.79, "base_fare": 3327, "tax": 538.79, "sell": { "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NS43OSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzOC43OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM4NjUuNzksImJhc2VfZmFyZSI6MzMyNywidGF4Ijo1MzguNzksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg2NS43OSwiYmFzZV9mYXJlIjozMzI3LCJ0YXgiOjUzOC43OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3327.00", "tax": "538.79", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3865.79, "base_fare": 3327, "tax": 538.79, "gross": { "base_fare": "3327.00", "tax": "538.79", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyNy4wMCIsInRheCI6IjUzOC43OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NjUuNzkiLCJiYXNlX2ZhcmUiOiIzMzI3LjAwIiwidGF4IjoiNTM4Ljc5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM4NjUuNzksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3865.79, "filter": { "id": "F1MS00008-79", "price": 3865.79, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Full Flex", "connecting_airport": [ "CDG" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "night", "arrival_departure_time": "2026-07-31T23:10:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607312130blq2026073123101028", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-80", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-80", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT3H30M", "transit_time": "PT3H30M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T18:00:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T19:50:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1329" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT03H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-80", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT5H55M", "transit_time": "PT5H55M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3915.98, "gross_total": 3915.98, "base_fare": 3328, "tax": 587.98, "sell": { "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxNS45OCwiYmFzZV9mYXJlIjozMzI4LCJ0YXgiOjU4Ny45OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM5MTUuOTgsImJhc2VfZmFyZSI6MzMyOCwidGF4Ijo1ODcuOTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxNS45OCwiYmFzZV9mYXJlIjozMzI4LCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3328.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98, "gross": { "base_fare": "3328.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM5MTUuOTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3915.98, "filter": { "id": "F1MS00008-80", "price": 3915.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "223", "aircraft_name": "Airbus A220-300", "cabin_class": "Full Flex", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T18:00:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301800cdg2026063019501329cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-81", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-81", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H40M", "transit_time": "PT6H40M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p50", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:50:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CDG", "arrival_time": "2026-06-30T16:40:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H50M", "distance": 515, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "320", "name": "Airbus A320", "picture": "320.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1829" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "710" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-81", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H5M", "transit_time": "PT9H5M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "719" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "marketing": { "carrier": "AF", "carrier_name": "Air France", "carrier_logo": "AF.png", "flight_number": "1340" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3915.98, "gross_total": 3915.98, "base_fare": 3328, "tax": 587.98, "sell": { "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxNS45OCwiYmFzZV9mYXJlIjozMzI4LCJ0YXgiOjU4Ny45OH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM5MTUuOTgsImJhc2VfZmFyZSI6MzMyOCwidGF4Ijo1ODcuOTgsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxNS45OCwiYmFzZV9mYXJlIjozMzI4LCJ0YXgiOjU4Ny45OH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3328.00", "tax": "587.98", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3915.98, "base_fare": 3328, "tax": 587.98, "gross": { "base_fare": "3328.00", "tax": "587.98", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOC4wMCIsInRheCI6IjU4Ny45OCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTUuOTgiLCJiYXNlX2ZhcmUiOiIzMzI4LjAwIiwidGF4IjoiNTg3Ljk4IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM5MTUuOTgsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3915.98, "filter": { "id": "F1MS00008-81", "price": 3915.98, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "AF", "carrier_marketing": "AF", "aircraft": "320", "aircraft_name": "Airbus A320", "cabin_class": "Full Flex", "connecting_airport": { "0": "CDG", "2": "AMS" }, "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:50:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301450cdg2026063016401829cdg202606302320dss202607010300710dss202607302310cdg202607310630719cdg202607310810ams2026073109401340ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-82", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-82", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT6H10M", "transit_time": "PT6H10M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p64", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T13:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T15:55:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1664" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T17:50:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T19:05:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H15M", "distance": 259, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1411" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT04H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-82", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT8H35M", "transit_time": "PT8H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p71", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3919.51, "gross_total": 3919.51, "base_fare": 3329, "tax": 590.51, "sell": { "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxOS41MSwiYmFzZV9mYXJlIjozMzI5LCJ0YXgiOjU5MC41MX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM5MTkuNTEsImJhc2VfZmFyZSI6MzMyOSwidGF4Ijo1OTAuNTEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxOS41MSwiYmFzZV9mYXJlIjozMzI5LCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3329.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51, "gross": { "base_fare": "3329.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM5MTkuNTEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3919.51, "filter": { "id": "F1MS00008-82", "price": 3919.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Full Flex", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T13:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301355ams2026063015551664ams202606301750cdg2026063019051411cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-83", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-83", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT10H35M", "transit_time": "PT10H35M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p65", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T09:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "AMS", "arrival_time": "2026-06-30T11:20:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-06-30", "flight_time": "PT2H0M", "distance": 614, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "295", "name": "Embraer195 E2", "picture": "295.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1662" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-06-30T14:10:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "CDG", "arrival_time": "2026-06-30T15:35:00", "destination_terminal": "2F", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-06-30", "flight_time": "PT1H25M", "distance": 259, "lay_over": "PT02H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "Airbus A320", "picture": "32A.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2009" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-06-30T23:20:00", "origin_terminal": "2E", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "DSS", "arrival_time": "2026-07-01T03:00:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": 2613, "lay_over": "PT07H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2092" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] }, { "group": 2, "flight_key": "F1MS00008-83", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT13H0M", "transit_time": "PT13H0M", "responseId": "89f1500a-8c76-4913-8842-28583cd8d950", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p71", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T23:10:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "CDG", "arrival_time": "2026-07-31T06:30:00", "destination_terminal": "2E", "destination_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "flight_date": "2026-07-30", "flight_time": "PT7H20M", "distance": 2613, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300", "picture": "77W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2277" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "CDG", "departure_time": "2026-07-31T08:10:00", "origin_terminal": "2F", "origin_airport": { "name": "Paris Charles de Gaulle Airport", "city": "Paris", "country": "France", "timezone": "Europe\/Paris" }, "destination": "AMS", "arrival_time": "2026-07-31T09:40:00", "destination_terminal": null, "destination_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "flight_date": "2026-07-31", "flight_time": "PT1H30M", "distance": 259, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "223", "name": "Airbus A220-300", "picture": "223.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "2006" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "AMS", "departure_time": "2026-07-31T10:25:00", "origin_terminal": null, "origin_airport": { "name": "Amsterdam Airport Schiphol", "city": "Amsterdam", "country": "Netherlands The", "timezone": "Europe\/Amsterdam" }, "destination": "BLQ", "arrival_time": "2026-07-31T12:15:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H50M", "distance": 614, "lay_over": "PT00H45M", "lay_over_date": "not-applicable", "aircraft": { "code": "73W", "name": "Boeing 737-700", "picture": "73W.png" }, "operating": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "marketing": { "carrier": "KL", "carrier_name": "KLM Royal Dutch Airlines", "carrier_logo": "KL.png", "flight_number": "1663" }, "booking_class": { "cabin_class": "Full Flex", "cabin_code": "FULLFLEX", "booking_code": "FULLFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 22.68, "unit": "kg", "title": "2 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ] } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 3919.51, "gross_total": 3919.51, "base_fare": 3329, "tax": 590.51, "sell": { "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxOS41MSwiYmFzZV9mYXJlIjozMzI5LCJ0YXgiOjU5MC41MX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjM5MTkuNTEsImJhc2VfZmFyZSI6MzMyOSwidGF4Ijo1OTAuNTEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzkxOS41MSwiYmFzZV9mYXJlIjozMzI5LCJ0YXgiOjU5MC41MX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "3329.00", "tax": "590.51", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 3919.51, "base_fare": 3329, "tax": 590.51, "gross": { "base_fare": "3329.00", "tax": "590.51", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyOS4wMCIsInRheCI6IjU5MC41MSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM5MTkuNTEiLCJiYXNlX2ZhcmUiOiIzMzI5LjAwIiwidGF4IjoiNTkwLjUxIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM5MTkuNTEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 3919.51, "filter": { "id": "F1MS00008-83", "price": 3919.51, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "KL", "carrier_marketing": "KL", "aircraft": "295", "aircraft_name": "Embraer195 E2", "cabin_class": "Full Flex", "connecting_airport": [ "AMS", "CDG" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T09:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T12:15:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606300920ams2026063011201662ams202606301410cdg2026063015352009cdg202606302320dss2026070103002092dss202607302310cdg2026073106302277cdg202607310810ams2026073109402006ams202607311025blq2026073112151663", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-84", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-84", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-84", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D5H17M", "transit_time": "1D5H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-84", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-85", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-85", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-85", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D10H17M", "transit_time": "1D10H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-85", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-86", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-86", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-86", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D5H17M", "transit_time": "1D5H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-86", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc08008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk07008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-87", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-87", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-2", "offerItemId": "XC266BE5D-89C7-4393-A589-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt12008d03b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm11008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt12008d03b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm11008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-87", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D10H17M", "transit_time": "1D10H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-2", "offerItemId": "XC266BE5D-89C7-4393-A589-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt12008d03b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm11008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt12008d03b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm11008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-87", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc08008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk07008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-88", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-88", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-1", "offerItemId": "XA35B7591-73CA-4200-9E4D-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500fd23b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500fd23b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-88", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D5H17M", "transit_time": "1D5H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-1", "offerItemId": "XA35B7591-73CA-4200-9E4D-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500fd23b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500fd23b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-88", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800fd23b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sjDUqINUx6wd*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00fd23b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sjDUqINUx6wd*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-89", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-89", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-2", "offerItemId": "XA35B7591-73CA-4200-9E4D-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200fd23b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200fd23b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-89", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D10H17M", "transit_time": "1D10H17M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-2", "offerItemId": "XA35B7591-73CA-4200-9E4D-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200fd23b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200fd23b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100fd23b8d7a Isgm0300fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1848.99, "gross_total": 1848.99, "base_fare": 1364, "tax": 484.99, "sell": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NDguOTksImJhc2VfZmFyZSI6MTM2NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg0OC45OSwiYmFzZV9mYXJlIjoxMzY0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1848.99, "base_fare": 1364, "tax": 484.99, "gross": { "base_fare": "1364.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM2NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NDguOTkiLCJiYXNlX2ZhcmUiOiIxMzY0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NDguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1848.99, "filter": { "id": "F1MS00008-89", "price": 1848.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800fd23b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sjDUqINUx6wd*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00fd23b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sjDUqINUx6wd*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-90", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-90", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D5H13M", "transit_time": "1D5H13M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "FCO", "arrival_time": "2026-06-30T18:37:00", "destination_terminal": null, "destination_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT3H0M", "distance": 192, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT21H08M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-3", "offerItemId": "XF7210262-5B1B-4CCE-8816-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1600bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1600bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-3", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-90", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H28M", "transit_time": "1D6H28M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-3", "offerItemId": "XF7210262-5B1B-4CCE-8816-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1600bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1600bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-90", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537fco2026063018373182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc1900bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk1800bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-91", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-91", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D6H10M", "transit_time": "1D6H10M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "XRJ", "arrival_time": "2026-06-30T17:40:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-06-30", "flight_time": "PT2H3M", "distance": 189, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT22H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-4", "offerItemId": "XF7210262-5B1B-4CCE-8816-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b00bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b00bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-4", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-91", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D7H25M", "transit_time": "1D7H25M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-4", "offerItemId": "XF7210262-5B1B-4CCE-8816-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b00bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-7", "offerItemId": "XF7210262-5B1B-4CCE-8816-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b00bbe3b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00bbe3b8d7a Isgm1500bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800bbe3b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm2700bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-91", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537xrj2026063017403182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc1900bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk1800bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-92", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-92", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D6H10M", "transit_time": "1D6H10M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "XRJ", "arrival_time": "2026-06-30T17:40:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-06-30", "flight_time": "PT2H3M", "distance": 189, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT22H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-3", "offerItemId": "XC266BE5D-89C7-4393-A589-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt16008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm14008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt16008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm14008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-3", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-92", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D7H25M", "transit_time": "1D7H25M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-3", "offerItemId": "XC266BE5D-89C7-4393-A589-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt16008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm14008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt16008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm14008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-92", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537xrj2026063017403182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc19008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk18008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-93", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-93", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D5H13M", "transit_time": "1D5H13M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "FCO", "arrival_time": "2026-06-30T18:37:00", "destination_terminal": null, "destination_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT3H0M", "distance": 192, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT21H08M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-4", "offerItemId": "XC266BE5D-89C7-4393-A589-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-4", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-93", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H28M", "transit_time": "1D6H28M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-4", "offerItemId": "XC266BE5D-89C7-4393-A589-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-7", "offerItemId": "XC266BE5D-89C7-4393-A589-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b008d03b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a008d03b8d7a Isgm15008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt28008d03b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm27008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-93", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537fco2026063018373182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc19008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk18008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-94", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-94", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D6H10M", "transit_time": "1D6H10M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "XRJ", "arrival_time": "2026-06-30T17:40:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-06-30", "flight_time": "PT2H3M", "distance": 189, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT22H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-3", "offerItemId": "XA35B7591-73CA-4200-9E4D-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1600fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1600fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-3", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-94", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D7H25M", "transit_time": "1D7H25M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-3", "offerItemId": "XA35B7591-73CA-4200-9E4D-3-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1600fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1600fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7592", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1400fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-94", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537xrj2026063017403182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc1900fd23b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk1800fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sjDUqINUx6wd*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00fd23b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sjDUqINUx6wd*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-95", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-95", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D5H13M", "transit_time": "1D5H13M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T15:37:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "FCO", "arrival_time": "2026-06-30T18:37:00", "destination_terminal": null, "destination_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT3H0M", "distance": 192, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "FCO", "departure_time": "2026-07-01T15:45:00", "origin_terminal": "3", "origin_airport": { "name": "Leonardo da Vinci-Fiumicino Airport", "city": "Rome", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T23:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H0M", "distance": 2697, "lay_over": "PT21H08M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "98" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT08H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-4", "offerItemId": "XA35B7591-73CA-4200-9E4D-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b00fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b00fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-4", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-95", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H28M", "transit_time": "1D6H28M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T08:55:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:40:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H45M", "distance": 2784, "lay_over": "PT01H15M", "lay_over_date": "not-applicable", "aircraft": { "code": "359", "name": "Airbus A350-900", "picture": "359.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "93" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XA35B7591-73CA-4200-9E4D-4", "offerItemId": "XA35B7591-73CA-4200-9E4D-4-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1b00fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XA35B7591-73CA-4200-9E4D-7", "offerItemId": "XA35B7591-73CA-4200-9E4D-7-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1b00fd23b8d7a" }, "Journey": { "Time": "PT50H33M", "Distance": { "Value": "7595", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1a00fd23b8d7a Isgm1500fd23b8d7a Isgm0400fd23b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt2800fd23b8d7a" }, "Journey": { "Time": "PT17H45M", "Distance": { "Value": "7490", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600fd23b8d7a Isgm2700fd23b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "BLQ" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XA35B7591-73CA-4200-9E4D-7", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1875.65, "gross_total": 1875.65, "base_fare": 1374, "tax": 501.65, "sell": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4NzUuNjUsImJhc2VfZmFyZSI6MTM3NCwidGF4Ijo1MDEuNjUsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTg3NS42NSwiYmFzZV9mYXJlIjoxMzc0LCJ0YXgiOjUwMS42NX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1875.65, "base_fare": 1374, "tax": 501.65, "gross": { "base_fare": "1374.00", "tax": "501.65", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTM3NC4wMCIsInRheCI6IjUwMS42NSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4NzUuNjUiLCJiYXNlX2ZhcmUiOiIxMzc0LjAwIiwidGF4IjoiNTAxLjY1IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE4NzUuNjUsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1875.65, "filter": { "id": "F1MS00008-95", "price": 1875.65, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "FCO", "DXB" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T15:37:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:40:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301537fco2026063018373182fco202607011545dxb20260701234598dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607310855blq20260731134093", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc1900fd23b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk1800fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DQML~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DPNK~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.3~D\/.\/.1~D5426~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sjDUqINUx6wd*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc2b00fd23b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk2a00fd23b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9@KO~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DAJP~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DAJP~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~D~MAD9RKCDNHR0~MSB9TEL1~MEA9RKCDNHR0-UDM0*sjDUqINUx6wd*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-96", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-96", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-8", "offerItemId": "XF7210262-5B1B-4CCE-8816-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-96", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D6H23M", "transit_time": "2D6H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T14:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T17:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT18H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-8", "offerItemId": "XF7210262-5B1B-4CCE-8816-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-8", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-96", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T17:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011441ibt2026080117243270", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-97", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-97", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-9", "offerItemId": "XF7210262-5B1B-4CCE-8816-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-97", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D9H23M", "transit_time": "2D9H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T17:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T20:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT21H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-9", "offerItemId": "XF7210262-5B1B-4CCE-8816-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-9", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-97", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T20:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011741ibt2026080120243010", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-98", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-98", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-10", "offerItemId": "XF7210262-5B1B-4CCE-8816-10-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-98", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D4H53M", "transit_time": "2D4H53M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T13:11:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T15:34:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H23M", "distance": 149, "lay_over": "PT16H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-1", "offerItemId": "XF7210262-5B1B-4CCE-8816-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-10", "offerItemId": "XF7210262-5B1B-4CCE-8816-10-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt0500bbe3b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm0200bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-10", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-98", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-08-01T15:34:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011311ibt2026080115343182", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-99", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-99", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-8", "offerItemId": "XF7210262-5B1B-4CCE-8816-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-99", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D11H23M", "transit_time": "2D11H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T14:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T17:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT18H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-8", "offerItemId": "XF7210262-5B1B-4CCE-8816-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3200bbe3b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3100bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-8", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-99", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T17:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011441ibt2026080117243270", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-100", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-100", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-9", "offerItemId": "XF7210262-5B1B-4CCE-8816-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-100", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D14H23M", "transit_time": "2D14H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T17:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T20:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT21H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-9", "offerItemId": "XF7210262-5B1B-4CCE-8816-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3700bbe3b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3600bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-9", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-100", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T20:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011741ibt2026080120243010", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-101", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-101", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H2M", "transit_time": "1D9H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T11:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T14:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3013" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT23H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-10", "offerItemId": "XF7210262-5B1B-4CCE-8816-10-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-2", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-101", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D9H53M", "transit_time": "2D9H53M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T13:11:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T15:34:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H23M", "distance": 149, "lay_over": "PT16H56M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3182" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XF7210262-5B1B-4CCE-8816-2", "offerItemId": "XF7210262-5B1B-4CCE-8816-2-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XF7210262-5B1B-4CCE-8816-10", "offerItemId": "XF7210262-5B1B-4CCE-8816-10-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt1200bbe3b8d7a" }, "Journey": { "Time": "PT54H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm1100bbe3b8d7a Isgm0300bbe3b8d7a Isgm0400bbe3b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt3a00bbe3b8d7a" }, "Journey": { "Time": "PT43H39M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm2600bbe3b8d7a Isgm3000bbe3b8d7a Isgm3900bbe3b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XF7210262-5B1B-4CCE-8816-10", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-101", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T11:36:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-08-01T15:34:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301136mxp2026063014183013mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011311ibt2026080115343182", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc0800bbe3b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk0700bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*sTZpxTbWmASh*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc3500bbe3b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk3400bbe3b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*sTZpxTbWmASh*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-102", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-102", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-8", "offerItemId": "XC266BE5D-89C7-4393-A589-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt32008d03b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm31008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt32008d03b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm31008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-102", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D6H23M", "transit_time": "2D6H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T14:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T17:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT18H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3270" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-8", "offerItemId": "XC266BE5D-89C7-4393-A589-8-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt32008d03b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm31008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt32008d03b8d7a" }, "Journey": { "Time": "PT45H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm31008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-8", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-102", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T17:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011441ibt2026080117243270", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc08008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk07008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc35008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk34008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-103", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-103", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H2M", "transit_time": "1D4H2M", "routes": [ { "air_segment_key": null, "origin": "IBT", "departure_time": "2026-06-30T16:36:00", "origin_terminal": null, "origin_airport": { "name": null, "city": null, "country": null, "timezone": null }, "destination": "MXP", "arrival_time": "2026-06-30T19:18:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-06-30", "flight_time": "PT2H42M", "distance": 149, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3011" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-07-01T14:15:00", "origin_terminal": "1", "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "DXB", "arrival_time": "2026-07-01T22:45:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-01", "flight_time": "PT8H30M", "distance": 2923, "lay_over": "PT18H57M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "206" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-02T07:50:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "DSS", "arrival_time": "2026-07-02T16:10:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-02", "flight_time": "PT8H20M", "distance": 4706, "lay_over": "PT09H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Flex Plus", "cabin_code": "YF", "booking_code": "YF", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-9", "offerItemId": "XC266BE5D-89C7-4393-A589-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt37008d03b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm36008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt37008d03b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm36008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-1", "productId": "" }, { "group": 2, "flight_key": "F1MS00008-103", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT2D9H23M", "transit_time": "2D9H23M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T17:55:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "DXB", "arrival_time": "2026-07-31T07:40:00", "destination_terminal": null, "destination_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "flight_date": "2026-07-30", "flight_time": "PT13H45M", "distance": 4706, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "77W", "name": "Boeing 777-300ER", "picture": "77W.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "797" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "DXB", "departure_time": "2026-07-31T15:35:00", "origin_terminal": "3", "origin_airport": { "name": "Dubai International Airport", "city": "Dubai", "country": "United Arab Emirates", "timezone": "Asia\/Dubai" }, "destination": "MXP", "arrival_time": "2026-07-31T20:15:00", "destination_terminal": null, "destination_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT4H40M", "distance": 2923, "lay_over": "PT07H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "388", "name": "Airbus A380-800", "picture": "388.png" }, "operating": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "marketing": { "carrier": "EK", "carrier_name": "Emirates", "carrier_logo": "EK.png", "flight_number": "91" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } }, { "air_segment_key": null, "origin": "MXP", "departure_time": "2026-08-01T17:41:00", "origin_terminal": null, "origin_airport": { "name": "Milano Malpensa Airport", "city": "Milan", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IBT", "arrival_time": "2026-08-01T20:24:00", "destination_terminal": null, "destination_airport": { "name": null, "city": null, "country": null, "timezone": null }, "flight_date": "2026-08-01", "flight_time": "PT2H43M", "distance": 149, "lay_over": "PT21H26M", "lay_over_date": "not-applicable", "aircraft": { "code": "TRN", "name": "Train", "picture": "TRN.png" }, "operating": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "marketing": { "carrier": "7T", "carrier_name": "Aero Express Del Ecuador Trans AM", "carrier_logo": "7T.png", "flight_number": "3010" }, "booking_class": { "cabin_class": "Economy Saver", "cabin_code": "YP", "booking_code": "YP", "meal_code": null, "seat_available": 0 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": null, "unit": null, "title": "2 pieces" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 1, "weight": null, "unit": null, "title": "1 pieces" } } } } ], "responseId": "XF7210262-5B1B-4CCE-8816,XC266BE5D-89C7-4393-A589,XA35B7591-73CA-4200-9E4D", "source": "NDC:Emirates", "processedOffer": { "processedOffers": [ { "offerId": "XC266BE5D-89C7-4393-A589-1", "offerItemId": "XC266BE5D-89C7-4393-A589-1-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } } ] }, { "offerId": "XC266BE5D-89C7-4393-A589-9", "offerItemId": "XC266BE5D-89C7-4393-A589-9-1", "passengerRef": "T1", "passengerType": "ADT", "accountCode": "VFN2", "flights": [ { "$": { "FlightKey": "Iflt37008d03b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm36008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] } ], "flightList": [ { "$": { "FlightKey": "Iflt05008d03b8d7a" }, "Journey": { "Time": "PT49H34M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm02008d03b8d7a Isgm03008d03b8d7a Isgm04008d03b8d7a", "$": { "OnPoint": "IBT", "OffPoint": "DSS" } } }, { "$": { "FlightKey": "Iflt37008d03b8d7a" }, "Journey": { "Time": "PT48H29M", "Distance": { "Value": "7778", "UOM": "Miles" } }, "SegmentReferences": { "_": "Isgm26008d03b8d7a Isgm30008d03b8d7a Isgm36008d03b8d7a", "$": { "OnPoint": "DSS", "OffPoint": "IBT" } } } ] }, "itinerary": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "", "originName": "Bologna Guglielmo Marconi Airport", "destinationName": "Blaise Diagne International Airport" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "", "originName": "Blaise Diagne International Airport", "destinationName": "Bologna Guglielmo Marconi Airport" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "offerId": "XC266BE5D-89C7-4393-A589-9", "productId": "" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1928.99, "gross_total": 1928.99, "base_fare": 1444, "tax": 484.99, "sell": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE5MjguOTksImJhc2VfZmFyZSI6MTQ0NCwidGF4Ijo0ODQuOTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTkyOC45OSwiYmFzZV9mYXJlIjoxNDQ0LCJ0YXgiOjQ4NC45OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1928.99, "base_fare": 1444, "tax": 484.99, "gross": { "base_fare": "1444.00", "tax": "484.99", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAifSwiY29uZmlnIjp7Im1hcmt1cF90eXBlIjpudWxsLCJtYXJrdXBfdGl0bGUiOm51bGwsInJldmVudWUiOiIwLjAwIiwidGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsImN1cnJlbmN5RXhjaGFuZ2VSYXRlIjoiMS4wMCIsIkZNR19PdmVyd3JpdGVSdWxlcyI6W119fSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTQ0NC4wMCIsInRheCI6IjQ4NC45OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6MCwicGVyX3NlZ21lbnRfZGlzY291bnQiOjAsInNlZ21lbnRfZGlzY291bnQiOiIwLjAwIiwic3VwcGxpZXJfc2VnbWVudF9mZWVzQ2FsY3VsYXRlIjpudWxsLCJzZWdtZW50X2Rpc2NvdW50X2FjY291bnRQdXJwb3NlIjpudWxsfX0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE5MjguOTkiLCJiYXNlX2ZhcmUiOiIxNDQ0LjAwIiwidGF4IjoiNDg0Ljk5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjE5MjguOTksInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1928.99, "filter": { "id": "F1MS00008-103", "price": 1928.99, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "7T", "carrier_marketing": "7T", "aircraft": "TRN", "aircraft_name": "Train", "cabin_class": "Economy Flex Plus", "connecting_airport": [ "MXP", "DXB" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T16:36:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-08-01T20:24:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "ibt202606301636mxp2026063019183011mxp202607011415dxb202607012245206dxb202607020750dss202607021610797dss202607301755dxb202607310740797dxb202607311535mxp20260731201591mxp202608011741ibt2026080120243010", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false }, "passengerFareRefs": [ { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc08008d03b8d7a", "fareDetails": { "fareBasisCode": "YLRZFIT1", "fareCode": "749", "metadataKey": "Xfrk07008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DXJQXEGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16227~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DXJQXEGS\/~D.11~D.\/0~D.\/.03~D51.\/~D1~D~A~A~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DT~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8XJQXEGS\/~MRC8UDM0~MDB8XJQXEGS\/.TEL1*stF6IE9qukAI*flxKey" } }, { "passengerTypeCode": "ADT", "passengerType": "Adult", "refs": "T1", "fareRef": "Xfbc35008d03b8d7a", "fareDetails": { "fareBasisCode": "TLEEPIT1", "fareCode": "749", "metadataKey": "Xfrk34008d03b8d7a", "FareKey": "NO8OPNQ~MVB8WLN~MqA9CJ~MqM9GAR~MpC8CQR~MSN9NT@K~MNP9.~MNW8@BS~M@K9.~MDQ8\/~MNR9@~MDJ82~DH@S~A~A~DCQR~A~A~DDI~A~DSJDCOGS\/~DGSLU~D\/.\/.\/.\/\/~D?CR~D44\/16231~D\/~DLGK~A~A~DCIQ~A~A~DDI~A~DSJDCOGS\/~D.11~D.\/0~D.\/.\/7~D51.\/~D1~D8L~DD~DJ~D0~DKHJ~A~A~D@KO~A~A~DCJ~A~DB~K~K~K~K~K~A~A~D811~D\/.1~D\/.\/.1~D5425~D0~D~A~A~D~M@E8SJDCOGS\/~MRC8UDM0~MDB8SJDCOGS\/.TEL1*stF6IE9qukAI*flxKey" } } ] }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-104", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-104", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H5M", "transit_time": "2H5M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T19:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T23:00:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT02H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0_LEG1" }, { "group": 2, "flight_key": "F1MS00008-104", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT16H40M", "transit_time": "16H40M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T07:50:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T09:30:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT14H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F0_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-104", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T19:20:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T09:30:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301920ist2026063023001326ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607310750blq2026073109301321", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-105", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-105", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H5M", "transit_time": "2H5M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T19:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T23:00:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT02H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1_LEG1" }, { "group": 2, "flight_key": "F1MS00008-105", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H10M", "transit_time": "21H10M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T12:20:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H35M", "distance": null, "lay_over": "PT19H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F1_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-105", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T19:20:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:55:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301920ist2026063023001326ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311220blq2026073113551323", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-106", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-106", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H30M", "transit_time": "6H30M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T18:35:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT06H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0_LEG1" }, { "group": 2, "flight_key": "F1MS00008-106", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT21H5M", "transit_time": "21H5M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T07:50:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T09:30:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT14H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F0_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-106", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T09:30:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301455ist2026063018351324ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607310750blq2026073109301321", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-107", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-107", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H5M", "transit_time": "2H5M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T19:20:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T23:00:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1326" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT02H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2_LEG1" }, { "group": 2, "flight_key": "F1MS00008-107", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H30M", "transit_time": "1D1H30M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T16:40:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T18:20:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT23H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F2B1F2_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-107", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-06-30T19:20:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T18:20:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301920ist2026063023001326ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311640blq2026073118201325", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-108", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-108", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H30M", "transit_time": "6H30M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T18:35:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT06H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1_LEG1" }, { "group": 2, "flight_key": "F1MS00008-108", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H35M", "transit_time": "1D1H35M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T12:20:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H35M", "distance": null, "lay_over": "PT19H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F1_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-108", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:55:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:55:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301455ist2026063018351324ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311220blq2026073113551323", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-109", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-109", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H55M", "transit_time": "10H55M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T10:30:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T14:10:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT10H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0_LEG1" }, { "group": 2, "flight_key": "F1MS00008-109", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H30M", "transit_time": "1D1H30M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T07:50:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T09:30:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT14H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1321" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F0_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-109", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T10:30:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-07-31T09:30:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301030ist2026063014101322ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607310750blq2026073109301321", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-110", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-110", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT6H30M", "transit_time": "6H30M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T14:55:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T18:35:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1324" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT06H30M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2_LEG1" }, { "group": 2, "flight_key": "F1MS00008-110", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D5H55M", "transit_time": "1D5H55M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T16:40:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T18:20:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT23H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F1B1F2_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-110", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-06-30T14:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T18:20:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301455ist2026063018351324ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311640blq2026073118201325", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-111", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-111", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H55M", "transit_time": "10H55M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T10:30:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T14:10:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT10H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1_LEG1" }, { "group": 2, "flight_key": "F1MS00008-111", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H0M", "transit_time": "1D6H0M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T12:20:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T13:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H35M", "distance": null, "lay_over": "PT19H05M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1323" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F1_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-111", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T10:30:00", "arrival_timing_slot": "afternoon", "arrival_departure_time": "2026-07-31T13:55:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301030ist2026063014101322ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311220blq2026073113551323", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "111178228773698221HM43N", "flight_key": "F1MS00008-112", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "package_option": "no", "supplier_title": "M-Live", "color_code": "#5ba5a4", "supplier_code": "myethool_partners", "supplier_uid": "F1MS00008", "supplier_partner_code": "myethool_partners-1-00008", "flight_group": [ { "group": 1, "flight_key": "F1MS00008-112", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT10H55M", "transit_time": "10H55M", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-06-30T10:30:00", "origin_terminal": null, "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "IST", "arrival_time": "2026-06-30T14:10:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-06-30", "flight_time": "PT3H40M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32Q", "name": "Airbus A321 NEO", "picture": "32Q.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1322" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-01T01:05:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "DSS", "arrival_time": "2026-07-01T05:35:00", "destination_terminal": null, "destination_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "flight_date": "2026-07-01", "flight_time": "PT4H30M", "distance": null, "lay_over": "PT10H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "501" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2_LEG1" }, { "group": 2, "flight_key": "F1MS00008-112", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D10H20M", "transit_time": "1D10H20M", "routes": [ { "air_segment_key": null, "origin": "DSS", "departure_time": "2026-07-30T07:20:00", "origin_terminal": null, "origin_airport": { "name": "Blaise Diagne International Airport", "city": "Dakar", "country": "Senegal", "timezone": "Africa\/Dakar" }, "destination": "IST", "arrival_time": "2026-07-30T17:15:00", "destination_terminal": null, "destination_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "flight_date": "2026-07-30", "flight_time": "PT9H55M", "distance": null, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "333", "name": "Airbus A330-300", "picture": "333.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "502" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } }, { "air_segment_key": null, "origin": "IST", "departure_time": "2026-07-31T16:40:00", "origin_terminal": null, "origin_airport": { "name": "Istanbul Airport", "city": "Istanbul", "country": "Turkey", "timezone": "Europe\/Istanbul" }, "destination": "BLQ", "arrival_time": "2026-07-31T18:20:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-07-31", "flight_time": "PT1H40M", "distance": null, "lay_over": "PT23H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "32B", "name": "Airbus A321", "picture": "32B.png" }, "operating": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "marketing": { "carrier": "TK", "carrier_name": "Turkish Airlines", "carrier_logo": "TK.png", "flight_number": "1325" }, "booking_class": { "cabin_class": "Turkish Airlines", "cabin_code": "TK", "booking_code": "TK", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": null, "unit": null, "title": "" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": null, "weight": 8, "unit": "kg", "title": "8 kg" } } } } ], "responseId": "6c4eee13-9535-4100-a4ce-68425fca8a37", "source": "NDC:Turkish", "itemId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2-1", "offerId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2", "paxRefId": [ "PAX_1" ], "productId": "F94C32FDC39C64697AD38EFEA02837E2B-R0B0F0B1F2_LEG2" } ], "pax_options": { "doc_required": "yes", "flight_type": "international" }, "price": { "currency": "EUR", "total": 1152.1, "gross_total": 1152.1, "base_fare": 652, "tax": 500.1, "sell": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjExNTIuMSwiYmFzZV9mYXJlIjo2NTIsInRheCI6NTAwLjEsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTE1Mi4xLCJiYXNlX2ZhcmUiOjY1MiwidGF4Ijo1MDAuMX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": 0, "ait": "0.00", "service_charge": 0 }, "partner": { "currency": "EUR", "total": 1152.1, "base_fare": 652, "tax": 500.1, "gross": { "base_fare": "652.00", "tax": "500.10", "discount": "0.00", "ait": "0.00", "service_charge": 0 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "0.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjExNTIuMTAiLCJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI2NTIuMDAiLCJ0YXgiOiI1MDAuMTAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwidG90YWxfdGlja2V0X2lzc3VlX2NoYXJnZSI6IjAuMDAiLCJjdXJyZW5jeUV4Y2hhbmdlUmF0ZSI6IjEuMDAiLCJGTUdfT3ZlcndyaXRlUnVsZXMiOltdfX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOiIxMTUyLjEwIiwiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNjUyLjAwIiwidGF4IjoiNTAwLjEwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTE1Mi4xMCIsImJhc2VfZmFyZSI6IjY1Mi4wMCIsInRheCI6IjUwMC4xMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxMTUyLjEsInRheEJyZWFrZG93biI6eyJCRCI6eyJhbW91bnQiOiIwLjAwIn0sIlVUIjp7ImFtb3VudCI6IjAuMDAifSwiRTUiOnsiYW1vdW50IjoiMC4wMCJ9LCJZUSI6eyJhbW91bnQiOiIwLjAwIn0sIllSIjp7ImFtb3VudCI6IjAuMDAifSwiT3RoZXIiOnsiYW1vdW50IjoiMC4wMCJ9LCJzdXBwbGllclRheERhdGEiOltdfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "fare_rules": { "refundable_data": null, "refundable": "non-refundable", "change_before_departure": "not-available" }, "total_price": 1152.1, "filter": { "id": "F1MS00008-112", "price": 1152.1, "journey_duration": "PT", "journey_duration_seconds": null, "layover_duration": "PT", "layover_duration_seconds": null, "carrier_operating": "TK", "carrier_marketing": "TK", "aircraft": "32Q", "aircraft_name": "Airbus A321 NEO", "cabin_class": "Turkish Airlines", "connecting_airport": [ "IST" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "morning", "departure_departure_time": "2026-06-30T10:30:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-07-31T18:20:00", "refund": "non-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202606301030ist2026063014101322ist202607010105dss202607010535501dss202607300720ist202607301715502ist202607311640blq2026073118201325", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "DSS", "departureDate": "2026-06-30", "departureTime": "" }, { "origin": "DSS", "destination": "BLQ", "departureDate": "2026-07-30", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } } ], "search_parameter": { "journey_type": "RoundTrip", "segment": [ { "departure_airport_type": "AIRPORT", "departure_airport": "BLQ", "arrival_airport_type": "AIRPORT", "arrival_airport": "DSS", "departure_date": "2026-06-30", "departure_time": "anytime", "departure_time_within": "anytime", "booking_class": "Economy", "stop": "any", "airlines": { "include": [ "TK" ], "exclude": [] }, "alliance": { "include": [], "exclude": [] }, "country": { "include": [], "exclude": [] } }, { "departure_airport_type": "AIRPORT", "departure_airport": "DSS", "arrival_airport_type": "AIRPORT", "arrival_airport": "BLQ", "departure_date": "2026-07-30", "departure_time": "anytime", "departure_time_within": "anytime", "booking_class": "Economy", "stop": "any", "alliance": { "include": [], "exclude": [] }, "country": { "include": [], "exclude": [] }, "airlines": { "include": [], "exclude": [] } } ], "travelers_adult": 1, "travelers_child": 0, "travelers_child_age": [], "travelers_infants": 0, "travelers_infants_age": [], "fare_type": [ "all", "public", "brand" ], "fare_option": [], "content_type": "all_content", "ptc_option": [], "agency_ethnic_list": [], "preferred_carrier": [], "non_stop_flight": "any", "baggage_option": "any", "booking_class": "Economy", "supplier_uid": "all", "partner_id": "11", "language": "en", "short_ref": "badd0d8fcdafd41949ed5ce14539464c74dade6216e3f0256c0176bdb13abaa2", "version": 1, "team_profile": [ null ], "RefundableOnly": false, "BestFareOnly": false } }