{ "status": "success", "tracking_id": "81178272706798221JRYZU", "performanceDuration": "", "data": [ { "tracking_id": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p0", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT14H25M", "transit_time": "PT14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p7", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 464.84, "gross_total": 454.84, "base_fare": 287, "tax": 177.84, "sell": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY0Ljg0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NH19", "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": 464.84, "base_fare": 287, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2NC44NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 464.84, "filter": { "id": "F1MS00008-0", "price": 464.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p0", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p8", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 464.84, "gross_total": 454.84, "base_fare": 287, "tax": 177.84, "sell": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY0Ljg0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NH19", "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": 464.84, "base_fare": 287, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2NC44NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 464.84, "filter": { "id": "F1MS00008-1", "price": 464.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p0", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p9", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 464.84, "gross_total": 454.84, "base_fare": 287, "tax": 177.84, "sell": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY0Ljg0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTQuODQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE3Ny44NH19", "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": 464.84, "base_fare": 287, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 464.84, "base_fare": 287, "tax": 177.84, "gross": { "base_fare": "277.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2NC44NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU0Ljg0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 464.84, "filter": { "id": "F1MS00008-2", "price": 464.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT4H25M", "transit_time": "PT4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-3", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT20H25M", "transit_time": "PT20H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-4", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT23H25M", "transit_time": "PT23H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-5", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT9H25M", "transit_time": "PT9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-6", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-7", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-8", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p24", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT19H25M", "transit_time": "PT19H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-9", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p24", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-10", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p24", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.84, "gross_total": 459.84, "base_fare": 292, "tax": 177.84, "sell": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg0LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODQsImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE3Ny44NH19", "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": 469.84, "base_fare": 292, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.84, "base_fare": 292, "tax": 177.84, "gross": { "base_fare": "282.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44NCIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg0IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.84, "filter": { "id": "F1MS00008-11", "price": 469.84, "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 Essential", "connecting_airport": [ "CMN" ], "total_segment_count": 4, "no_of_stops": 1, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p58", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p63", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-12", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p58", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 4 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p64", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-13", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p73", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT22H40M", "transit_time": "PT22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-14", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p73", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-15", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p73", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-16", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p74", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT23H5M", "transit_time": "PT23H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-17", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p74", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-18", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p74", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 469.89, "gross_total": 459.89, "base_fare": 287, "tax": 182.89, "sell": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDY5Ljg5LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NTkuODksImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Mi44OX19", "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": 469.89, "base_fare": 287, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 469.89, "base_fare": 287, "tax": 182.89, "gross": { "base_fare": "277.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ2OS44OSIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDU5Ljg5IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 469.89, "filter": { "id": "F1MS00008-19", "price": 469.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p102", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p117", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-20", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p102", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p118", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-21", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p103", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p117", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-22", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p103", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 8 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p118", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-23", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p104", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p117", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-24", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p104", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p118", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-25", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p127", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p141", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-26", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p127", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p142", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-27", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p127", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p143", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-28", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p128", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p141", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-29", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p128", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p142", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-30", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p128", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 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": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p143", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.89, "gross_total": 464.89, "base_fare": 292, "tax": 182.89, "sell": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljg5LCJiYXNlX2ZhcmUiOjI5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuODksImJhc2VfZmFyZSI6MjgyLCJ0YXgiOjE4Mi44OX19", "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": 474.89, "base_fare": 292, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.89, "base_fare": 292, "tax": 182.89, "gross": { "base_fare": "282.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC44OSIsImJhc2VfZmFyZSI6IjI5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljg5IiwiYmFzZV9mYXJlIjoiMjgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.89, "filter": { "id": "F1MS00008-31", "price": 474.89, "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 Essential", "connecting_airport": [ "CMN", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p156", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p166", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.94, "gross_total": 464.94, "base_fare": 287, "tax": 187.94, "sell": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljk0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NH19", "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": 474.94, "base_fare": 287, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC45NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.94, "filter": { "id": "F1MS00008-32", "price": 474.94, "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 Essential", "connecting_airport": [ "CMN", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p156", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p167", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.94, "gross_total": 464.94, "base_fare": 287, "tax": 187.94, "sell": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljk0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NH19", "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": 474.94, "base_fare": 287, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC45NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.94, "filter": { "id": "F1MS00008-33", "price": 474.94, "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 Essential", "connecting_airport": [ "CMN", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p157", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p166", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.94, "gross_total": 464.94, "base_fare": 287, "tax": 187.94, "sell": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljk0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NH19", "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": 474.94, "base_fare": 287, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC45NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.94, "filter": { "id": "F1MS00008-34", "price": 474.94, "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 Essential", "connecting_airport": [ "CMN", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p157", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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 Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 2 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p167", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 3 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 0, "weight": 22.68, "unit": "kg", "title": "22.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": 474.94, "gross_total": 464.94, "base_fare": 287, "tax": 187.94, "sell": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDc0Ljk0LCJiYXNlX2ZhcmUiOjI4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0NjQuOTQsImJhc2VfZmFyZSI6Mjc3LCJ0YXgiOjE4Ny45NH19", "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": 474.94, "base_fare": 287, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 474.94, "base_fare": 287, "tax": 187.94, "gross": { "base_fare": "277.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQ3NC45NCIsImJhc2VfZmFyZSI6IjI4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDY0Ljk0IiwiYmFzZV9mYXJlIjoiMjc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQ2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 474.94, "filter": { "id": "F1MS00008-35", "price": 474.94, "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 Essential", "connecting_airport": [ "CMN", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p1", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 4 }, "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-36", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H25M", "transit_time": "PT14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p10", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 514.84, "gross_total": 504.84, "base_fare": 337, "tax": 177.84, "sell": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE0Ljg0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NH19", "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": 514.84, "base_fare": 337, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxNC44NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwNC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 514.84, "filter": { "id": "F1MS00008-36", "price": 514.84, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p1", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 4 }, "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-37", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p11", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 514.84, "gross_total": 504.84, "base_fare": 337, "tax": 177.84, "sell": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE0Ljg0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NH19", "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": 514.84, "base_fare": 337, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxNC44NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwNC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 514.84, "filter": { "id": "F1MS00008-37", "price": 514.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p1", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 4 }, "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-38", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p12", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 514.84, "gross_total": 504.84, "base_fare": 337, "tax": 177.84, "sell": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE0Ljg0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDQuODQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE3Ny44NH19", "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": 514.84, "base_fare": 337, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 514.84, "base_fare": 337, "tax": 177.84, "gross": { "base_fare": "327.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxNC44NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA0Ljg0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwNC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 514.84, "filter": { "id": "F1MS00008-38", "price": 514.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-39", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT4H25M", "transit_time": "PT4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-39", "price": 519.84, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-40", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-40", "price": 519.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-41", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-41", "price": 519.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-42", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT9H25M", "transit_time": "PT9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-42", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-43", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-43", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-44", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-44", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p27", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-45", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H25M", "transit_time": "PT19H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-45", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p27", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-46", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-46", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p27", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-47", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 519.84, "gross_total": 509.84, "base_fare": 342, "tax": 177.84, "sell": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg0LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODQsImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE3Ny44NH19", "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": 519.84, "base_fare": 342, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.84, "base_fare": 342, "tax": 177.84, "gross": { "base_fare": "332.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44NCIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg0IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.84, "filter": { "id": "F1MS00008-47", "price": 519.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p59", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 4 }, "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-48", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p65", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-48", "price": 519.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p59", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 4 }, "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-49", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p66", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-49", "price": 519.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-50", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H40M", "transit_time": "PT22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p90", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-50", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-51", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p91", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-51", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-52", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p92", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-52", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-53", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H5M", "transit_time": "PT23H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p90", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-53", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-54", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p91", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-54", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-55", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p92", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 519.89, "gross_total": 509.89, "base_fare": 337, "tax": 182.89, "sell": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTE5Ljg5LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MDkuODksImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Mi44OX19", "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": 519.89, "base_fare": 337, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 519.89, "base_fare": 337, "tax": 182.89, "gross": { "base_fare": "327.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUxOS44OSIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTA5Ljg5IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUwOS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 519.89, "filter": { "id": "F1MS00008-55", "price": 519.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-56", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p119", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-56", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-57", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p120", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-57", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-58", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p119", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-58", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 8 }, "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-59", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p120", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-59", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-60", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p119", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-60", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-61", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p120", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-61", "price": 524.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p129", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-62", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p144", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-62", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p129", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-63", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p145", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-63", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p129", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-64", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p146", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-64", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p130", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-65", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p144", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-65", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p130", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-66", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p145", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-66", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p130", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-67", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p146", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 524.89, "gross_total": 514.89, "base_fare": 342, "tax": 182.89, "sell": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljg5LCJiYXNlX2ZhcmUiOjM0MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuODksImJhc2VfZmFyZSI6MzMyLCJ0YXgiOjE4Mi44OX19", "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": 524.89, "base_fare": 342, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.89, "base_fare": 342, "tax": 182.89, "gross": { "base_fare": "332.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC44OSIsImJhc2VfZmFyZSI6IjM0Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMzMi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljg5IiwiYmFzZV9mYXJlIjoiMzMyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.89, "filter": { "id": "F1MS00008-67", "price": 524.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p158", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-68", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p168", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 524.94, "gross_total": 514.94, "base_fare": 337, "tax": 187.94, "sell": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljk0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NH19", "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": 524.94, "base_fare": 337, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC45NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.94, "filter": { "id": "F1MS00008-68", "price": 524.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p158", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-69", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p169", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 524.94, "gross_total": 514.94, "base_fare": 337, "tax": 187.94, "sell": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljk0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NH19", "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": 524.94, "base_fare": 337, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC45NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.94, "filter": { "id": "F1MS00008-69", "price": 524.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p159", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-70", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p168", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 524.94, "gross_total": 514.94, "base_fare": 337, "tax": 187.94, "sell": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljk0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NH19", "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": 524.94, "base_fare": 337, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC45NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.94, "filter": { "id": "F1MS00008-70", "price": 524.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p159", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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-71", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p169", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 524.94, "gross_total": 514.94, "base_fare": 337, "tax": 187.94, "sell": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTI0Ljk0LCJiYXNlX2ZhcmUiOjMzNywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1MTQuOTQsImJhc2VfZmFyZSI6MzI3LCJ0YXgiOjE4Ny45NH19", "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": 524.94, "base_fare": 337, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 524.94, "base_fare": 337, "tax": 187.94, "gross": { "base_fare": "327.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjUyNC45NCIsImJhc2VfZmFyZSI6IjMzNy4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjMyNy4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTE0Ljk0IiwiYmFzZV9mYXJlIjoiMzI3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjUxNC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 524.94, "filter": { "id": "F1MS00008-71", "price": 524.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p2", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 4 }, "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-72", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H25M", "transit_time": "PT14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p13", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 664.84, "gross_total": 654.84, "base_fare": 487, "tax": 177.84, "sell": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY0Ljg0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NH19", "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": 664.84, "base_fare": 487, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2NC44NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 664.84, "filter": { "id": "F1MS00008-72", "price": 664.84, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p2", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 4 }, "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-73", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p14", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 664.84, "gross_total": 654.84, "base_fare": 487, "tax": 177.84, "sell": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY0Ljg0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NH19", "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": 664.84, "base_fare": 487, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2NC44NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 664.84, "filter": { "id": "F1MS00008-73", "price": 664.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p2", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 4 }, "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-74", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p15", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 664.84, "gross_total": 654.84, "base_fare": 487, "tax": 177.84, "sell": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY0Ljg0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTQuODQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE3Ny44NH19", "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": 664.84, "base_fare": 487, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 664.84, "base_fare": 487, "tax": 177.84, "gross": { "base_fare": "477.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2NC44NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU0Ljg0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1NC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 664.84, "filter": { "id": "F1MS00008-74", "price": 664.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-75", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT4H25M", "transit_time": "PT4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-75", "price": 669.84, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-76", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p50", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-76", "price": 669.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-77", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p51", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-77", "price": 669.84, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-78", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT9H25M", "transit_time": "PT9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-78", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-79", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p50", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-79", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-80", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p51", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-80", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p30", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-81", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H25M", "transit_time": "PT19H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-81", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p30", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-82", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p50", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-82", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p30", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-83", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p51", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 669.84, "gross_total": 659.84, "base_fare": 492, "tax": 177.84, "sell": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg0LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODQsImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE3Ny44NH19", "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": 669.84, "base_fare": 492, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.84, "base_fare": 492, "tax": 177.84, "gross": { "base_fare": "482.00", "tax": "177.84", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44NCIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg0IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.84, "filter": { "id": "F1MS00008-83", "price": 669.84, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p60", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 4 }, "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-84", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p67", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-84", "price": 669.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p60", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 4 }, "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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 4 }, "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-85", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p68", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-85", "price": 669.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-86", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H40M", "transit_time": "PT22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p93", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-86", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-87", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p94", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-87", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-88", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p95", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-88", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-89", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H5M", "transit_time": "PT23H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p93", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-89", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-90", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p94", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-90", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-91", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p95", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 669.89, "gross_total": 659.89, "base_fare": 487, "tax": 182.89, "sell": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NjY5Ljg5LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NTkuODksImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Mi44OX19", "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": 669.89, "base_fare": 487, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 669.89, "base_fare": 487, "tax": 182.89, "gross": { "base_fare": "477.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY2OS44OSIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjU5Ljg5IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY1OS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 669.89, "filter": { "id": "F1MS00008-91", "price": 669.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-92", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p121", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-92", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-93", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p122", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-93", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-94", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p121", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-94", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 8 }, "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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 8 }, "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-95", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p122", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-95", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-96", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p121", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-96", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "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": 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-97", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p122", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-97", "price": 674.89, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p131", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-98", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p147", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-98", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p131", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-99", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p148", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-99", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p131", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-100", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p149", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-100", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p132", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-101", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p147", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-101", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p132", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-102", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p148", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-102", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p132", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "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": 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "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": 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-103", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p149", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 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": 674.89, "gross_total": 664.89, "base_fare": 492, "tax": 182.89, "sell": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljg5LCJiYXNlX2ZhcmUiOjQ5MiwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuODksImJhc2VfZmFyZSI6NDgyLCJ0YXgiOjE4Mi44OX19", "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": 674.89, "base_fare": 492, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.89, "base_fare": 492, "tax": 182.89, "gross": { "base_fare": "482.00", "tax": "182.89", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC44OSIsImJhc2VfZmFyZSI6IjQ5Mi4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ4Mi4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljg5IiwiYmFzZV9mYXJlIjoiNDgyLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.89, "filter": { "id": "F1MS00008-103", "price": 674.89, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p160", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-104", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p170", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 674.94, "gross_total": 664.94, "base_fare": 487, "tax": 187.94, "sell": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljk0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NH19", "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": 674.94, "base_fare": 487, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC45NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.94, "filter": { "id": "F1MS00008-104", "price": 674.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p160", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-105", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p171", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 674.94, "gross_total": 664.94, "base_fare": 487, "tax": 187.94, "sell": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljk0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NH19", "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": 674.94, "base_fare": 487, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC45NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.94, "filter": { "id": "F1MS00008-105", "price": 674.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p161", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-106", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p170", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 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": 674.94, "gross_total": 664.94, "base_fare": 487, "tax": 187.94, "sell": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljk0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NH19", "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": 674.94, "base_fare": 487, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC45NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.94, "filter": { "id": "F1MS00008-106", "price": 674.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p161", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 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": "CMN", "departure_time": "2026-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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-107", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p171", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "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": "CMN", "departure_time": "2026-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 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": 674.94, "gross_total": 664.94, "base_fare": 487, "tax": 187.94, "sell": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Njc0Ljk0LCJiYXNlX2ZhcmUiOjQ4NywidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo2NjQuOTQsImJhc2VfZmFyZSI6NDc3LCJ0YXgiOjE4Ny45NH19", "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": 674.94, "base_fare": 487, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 674.94, "base_fare": 487, "tax": 187.94, "gross": { "base_fare": "477.00", "tax": "187.94", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjY3NC45NCIsImJhc2VfZmFyZSI6IjQ4Ny4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjQ3Ny4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNjY0Ljk0IiwiYmFzZV9mYXJlIjoiNDc3LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjY2NC45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 674.94, "filter": { "id": "F1MS00008-107", "price": 674.94, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p3", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-108", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p16", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1355.19, "gross_total": 1345.19, "base_fare": 1063, "tax": 292.19, "sell": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4xOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNDUuMTksImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM0NS4xOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Mi4xOX19", "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": 1355.19, "base_fare": 1063, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNTUuMTkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1355.19, "filter": { "id": "F1MS00008-108", "price": 1355.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p31", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-109", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p52", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1355.19, "gross_total": 1345.19, "base_fare": 1063, "tax": 292.19, "sell": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4xOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNDUuMTksImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM0NS4xOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Mi4xOX19", "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": 1355.19, "base_fare": 1063, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNTUuMTkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1355.19, "filter": { "id": "F1MS00008-109", "price": 1355.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p32", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-110", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p52", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1355.19, "gross_total": 1345.19, "base_fare": 1063, "tax": 292.19, "sell": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4xOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNDUuMTksImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM0NS4xOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Mi4xOX19", "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": 1355.19, "base_fare": 1063, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNTUuMTkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1355.19, "filter": { "id": "F1MS00008-110", "price": 1355.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p33", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-111", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p52", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1355.19, "gross_total": 1345.19, "base_fare": 1063, "tax": 292.19, "sell": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4xOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNDUuMTksImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM0NS4xOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Mi4xOX19", "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": 1355.19, "base_fare": 1063, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1355.19, "base_fare": 1063, "tax": 292.19, "gross": { "base_fare": "1053.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNTUuMTkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM0NS4xOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1355.19, "filter": { "id": "F1MS00008-111", "price": 1355.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p61", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-112", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p69", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-112", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-113", "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-113", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p61", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-113", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p70", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-113", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-114", "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-114", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p79", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-114", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p96", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-114", "price": 1360.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-115", "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-115", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p80", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-115", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p96", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-115", "price": 1360.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-116", "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-116", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-116", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p123", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-116", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-117", "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-117", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-117", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p124", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-117", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-118", "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-118", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p112", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-118", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p123", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-118", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-119", "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-119", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p112", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-119", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p124", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-119", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-120", "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-120", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p113", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-120", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p123", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-120", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-121", "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-121", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p113", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-121", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p124", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-121", "price": 1360.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-122", "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-122", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p133", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-122", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p150", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-122", "price": 1360.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-123", "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-123", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p134", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-123", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p150", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1360.24, "gross_total": 1350.24, "base_fare": 1063, "tax": 297.24, "sell": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2MC4yNCwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTAuMjQsImJhc2VfZmFyZSI6MTA1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1MC4yNCwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjI5Ny4yNH19", "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": 1360.24, "base_fare": 1063, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1360.24, "base_fare": 1063, "tax": 297.24, "gross": { "base_fare": "1053.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjAuMjQiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1MC4yNCIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1360.24, "filter": { "id": "F1MS00008-123", "price": 1360.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-124", "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-124", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p162", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-124", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p172", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1365.29, "gross_total": 1355.29, "base_fare": 1063, "tax": 302.29, "sell": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2NS4yOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTUuMjksImJhc2VfZmFyZSI6MTA1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4yOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjMwMi4yOX19", "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": 1365.29, "base_fare": 1063, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjUuMjkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1365.29, "filter": { "id": "F1MS00008-124", "price": 1365.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-125", "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-125", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p162", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-125", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p173", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1365.29, "gross_total": 1355.29, "base_fare": 1063, "tax": 302.29, "sell": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2NS4yOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTUuMjksImJhc2VfZmFyZSI6MTA1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4yOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjMwMi4yOX19", "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": 1365.29, "base_fare": 1063, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjUuMjkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1365.29, "filter": { "id": "F1MS00008-125", "price": 1365.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-126", "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-126", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p163", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-126", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p172", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1365.29, "gross_total": 1355.29, "base_fare": 1063, "tax": 302.29, "sell": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2NS4yOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTUuMjksImJhc2VfZmFyZSI6MTA1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4yOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjMwMi4yOX19", "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": 1365.29, "base_fare": 1063, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjUuMjkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1365.29, "filter": { "id": "F1MS00008-126", "price": 1365.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-127", "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-127", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p163", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-127", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p173", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1365.29, "gross_total": 1355.29, "base_fare": 1063, "tax": 302.29, "sell": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM2NS4yOSwiYmFzZV9mYXJlIjoxMDYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjEzNTUuMjksImJhc2VfZmFyZSI6MTA1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTM1NS4yOSwiYmFzZV9mYXJlIjoxMDUzLCJ0YXgiOjMwMi4yOX19", "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": 1365.29, "base_fare": 1063, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1365.29, "base_fare": 1063, "tax": 302.29, "gross": { "base_fare": "1053.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjEzNjUuMjkiLCJiYXNlX2ZhcmUiOiIxMDYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTA1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMDUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTM1NS4yOSIsImJhc2VfZmFyZSI6IjEwNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTM1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1365.29, "filter": { "id": "F1MS00008-127", "price": 1365.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-128", "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-128", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p5", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-128", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p19", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1555.19, "gross_total": 1545.19, "base_fare": 1263, "tax": 292.19, "sell": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4xOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NDUuMTksImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU0NS4xOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Mi4xOX19", "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": 1555.19, "base_fare": 1263, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTUuMTkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1555.19, "filter": { "id": "F1MS00008-128", "price": 1555.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-129", "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-129", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p37", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-129", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1555.19, "gross_total": 1545.19, "base_fare": 1263, "tax": 292.19, "sell": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4xOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NDUuMTksImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU0NS4xOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Mi4xOX19", "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": 1555.19, "base_fare": 1263, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTUuMTkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1555.19, "filter": { "id": "F1MS00008-129", "price": 1555.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-130", "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-130", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-130", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1555.19, "gross_total": 1545.19, "base_fare": 1263, "tax": 292.19, "sell": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4xOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NDUuMTksImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU0NS4xOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Mi4xOX19", "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": 1555.19, "base_fare": 1263, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTUuMTkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1555.19, "filter": { "id": "F1MS00008-130", "price": 1555.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-131", "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-131", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-131", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1555.19, "gross_total": 1545.19, "base_fare": 1263, "tax": 292.19, "sell": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4xOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NDUuMTksImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU0NS4xOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Mi4xOX19", "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": 1555.19, "base_fare": 1263, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1555.19, "base_fare": 1263, "tax": 292.19, "gross": { "base_fare": "1253.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NTUuMTkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU0NS4xOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU0NS4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1555.19, "filter": { "id": "F1MS00008-131", "price": 1555.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-132", "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-132", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p62", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-132", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p71", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-132", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-133", "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-133", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p62", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-133", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D2H15M", "transit_time": "PT1D2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p72", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-133", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-134", "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-134", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p83", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-134", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p99", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-134", "price": 1560.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-135", "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-135", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p84", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-135", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p99", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-135", "price": 1560.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-136", "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-136", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p114", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-136", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p125", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-136", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-137", "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-137", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p114", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-137", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT16H15M", "transit_time": "PT16H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p126", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-137", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-138", "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-138", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p115", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-138", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p125", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-138", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-139", "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-139", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p115", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-139", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT21H15M", "transit_time": "PT21H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p126", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-139", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-140", "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-140", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p116", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-140", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p125", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-140", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-141", "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-141", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p116", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-141", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D7H15M", "transit_time": "PT1D7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p126", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-141", "price": 1560.24, "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", "RAK" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-142", "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-142", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p137", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-142", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p153", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-142", "price": 1560.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-143", "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-143", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p138", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-143", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p153", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1423" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1423" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT18H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1560.24, "gross_total": 1550.24, "base_fare": 1263, "tax": 297.24, "sell": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2MC4yNCwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTAuMjQsImJhc2VfZmFyZSI6MTI1MywidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1MC4yNCwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjI5Ny4yNH19", "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": 1560.24, "base_fare": 1263, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1560.24, "base_fare": 1263, "tax": 297.24, "gross": { "base_fare": "1253.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjAuMjQiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1MC4yNCIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1MC4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1560.24, "filter": { "id": "F1MS00008-143", "price": 1560.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609101145cmn2026091013451423cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-144", "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-144", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p164", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-144", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p174", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1565.29, "gross_total": 1555.29, "base_fare": 1263, "tax": 302.29, "sell": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2NS4yOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTUuMjksImJhc2VfZmFyZSI6MTI1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4yOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjMwMi4yOX19", "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": 1565.29, "base_fare": 1263, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjUuMjkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1565.29, "filter": { "id": "F1MS00008-144", "price": 1565.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-145", "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-145", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p164", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-145", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H30M", "transit_time": "PT1D10H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p175", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1565.29, "gross_total": 1555.29, "base_fare": 1263, "tax": 302.29, "sell": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2NS4yOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTUuMjksImJhc2VfZmFyZSI6MTI1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4yOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjMwMi4yOX19", "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": 1565.29, "base_fare": 1263, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjUuMjkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1565.29, "filter": { "id": "F1MS00008-145", "price": 1565.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-146", "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-146", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p165", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-146", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p174", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-10T18:50:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T19:50:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT01H55M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "412" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT12H05M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1565.29, "gross_total": 1555.29, "base_fare": 1263, "tax": 302.29, "sell": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2NS4yOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTUuMjksImJhc2VfZmFyZSI6MTI1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4yOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjMwMi4yOX19", "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": 1565.29, "base_fare": 1263, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjUuMjkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1565.29, "filter": { "id": "F1MS00008-146", "price": 1565.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609101850cmn202609101950412cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-147", "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-147", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p165", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-147", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D10H55M", "transit_time": "PT1D10H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p175", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T15:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "RAK", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": "1", "destination_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT1H50M", "distance": 729, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "E90", "name": "EMBRAER 190", "picture": "E90.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1497" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "RAK", "departure_time": "2026-09-11T00:30:00", "origin_terminal": "1", "origin_airport": { "name": "Menara Airport", "city": "Marrakech", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-11T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-11", "flight_time": "PT1H0M", "distance": 124, "lay_over": "PT07H35M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "416" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT06H25M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1565.29, "gross_total": 1555.29, "base_fare": 1263, "tax": 302.29, "sell": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU2NS4yOSwiYmFzZV9mYXJlIjoxMjYzLCJ0YXgiOjMwMi4yOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE1NTUuMjksImJhc2VfZmFyZSI6MTI1MywidGF4IjozMDIuMjksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTU1NS4yOSwiYmFzZV9mYXJlIjoxMjUzLCJ0YXgiOjMwMi4yOX19", "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": 1565.29, "base_fare": 1263, "tax": 302.29, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1565.29, "base_fare": 1263, "tax": 302.29, "gross": { "base_fare": "1253.00", "tax": "302.29", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE1NjUuMjkiLCJiYXNlX2ZhcmUiOiIxMjYzLjAwIiwidGF4IjoiMzAyLjI5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTI1My4wMCIsInRheCI6IjMwMi4yOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMjUzLjAwIiwidGF4IjoiMzAyLjI5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTU1NS4yOSIsImJhc2VfZmFyZSI6IjEyNTMuMDAiLCJ0YXgiOiIzMDIuMjkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTU1NS4yOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1565.29, "filter": { "id": "F1MS00008-147", "price": 1565.29, "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", "AGA", "RAK" ], "total_segment_count": 6, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609101505rak2026091016551497rak202609110030cmn202609110130416cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-148", "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-148", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p4", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-148", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H25M", "transit_time": "PT14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p17", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-148", "price": 1634.19, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-149", "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-149", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p4", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-149", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p18", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-149", "price": 1634.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-150", "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-150", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p34", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-150", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT4H25M", "transit_time": "PT4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p53", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-150", "price": 1634.19, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-151", "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-151", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p34", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-151", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p54", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-151", "price": 1634.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-152", "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-152", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-152", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT9H25M", "transit_time": "PT9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p53", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-152", "price": 1634.19, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-153", "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-153", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-153", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p54", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-153", "price": 1634.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-154", "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-154", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-154", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H25M", "transit_time": "PT19H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p53", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-154", "price": 1634.19, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-155", "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-155", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-155", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p54", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1634.19, "gross_total": 1624.19, "base_fare": 1342, "tax": 292.19, "sell": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzNC4xOSwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjQuMTksImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyNC4xOSwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Mi4xOX19", "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": 1634.19, "base_fare": 1342, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1634.19, "base_fare": 1342, "tax": 292.19, "gross": { "base_fare": "1332.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzQuMTkiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyNC4xOSIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1634.19, "filter": { "id": "F1MS00008-155", "price": 1634.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-156", "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-156", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p81", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-156", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H40M", "transit_time": "PT22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p97", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-156", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-157", "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-157", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p81", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-157", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p98", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-157", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-158", "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-158", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p82", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-158", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H5M", "transit_time": "PT23H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p97", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-158", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-159", "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-159", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p82", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-159", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p98", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-159", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-160", "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-160", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p135", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-160", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p151", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-160", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-161", "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-161", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p135", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-161", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p152", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-161", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-162", "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-162", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p136", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-162", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p151", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-162", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-163", "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-163", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p136", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-163", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p152", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1639.24, "gross_total": 1629.24, "base_fare": 1342, "tax": 297.24, "sell": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYzOS4yNCwiYmFzZV9mYXJlIjoxMzQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE2MjkuMjQsImJhc2VfZmFyZSI6MTMzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTYyOS4yNCwiYmFzZV9mYXJlIjoxMzMyLCJ0YXgiOjI5Ny4yNH19", "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": 1639.24, "base_fare": 1342, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1639.24, "base_fare": 1342, "tax": 297.24, "gross": { "base_fare": "1332.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE2MzkuMjQiLCJiYXNlX2ZhcmUiOiIxMzQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTMzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxMzMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTYyOS4yNCIsImJhc2VfZmFyZSI6IjEzMzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTYyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1639.24, "filter": { "id": "F1MS00008-163", "price": 1639.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-164", "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-164", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p6", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-164", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT14H25M", "transit_time": "PT14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p20", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-164", "price": 1834.19, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-165", "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-165", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o1", "productId": "p6", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT12H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-165", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p21", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-165", "price": 1834.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-166", "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-166", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-166", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT4H25M", "transit_time": "PT4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-166", "price": 1834.19, "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-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-167", "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-167", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT02H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-167", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-167", "price": 1834.19, "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-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-168", "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-168", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-168", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT9H25M", "transit_time": "PT9H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-168", "price": 1834.19, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-169", "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-169", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T22:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T00:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT07H15M", "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": "1420" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1420" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-169", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-169", "price": 1834.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-170", "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-170", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-170", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT19H25M", "transit_time": "PT19H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-170", "price": 1834.19, "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-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-171", "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-171", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT17H15M", "transit_time": "PT17H15M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-21T08:25:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T10:45:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT2H20M", "distance": 837, "lay_over": "PT17H15M", "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": "1422" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1422" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-171", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1834.19, "gross_total": 1824.19, "base_fare": 1542, "tax": 292.19, "sell": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzNC4xOSwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Mi4xOX0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjQuMTksImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTIuMTksImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyNC4xOSwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Mi4xOX19", "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": 1834.19, "base_fare": 1542, "tax": 292.19, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1834.19, "base_fare": 1542, "tax": 292.19, "gross": { "base_fare": "1532.00", "tax": "292.19", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzQuMTkiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjkyLjE5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Mi4xOSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjkyLjE5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyNC4xOSIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTIuMTkiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyNC4xOSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1834.19, "filter": { "id": "F1MS00008-171", "price": 1834.19, "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-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-172", "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-172", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-172", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT22H40M", "transit_time": "PT22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p100", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-172", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-173", "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-173", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-173", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p101", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-173", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-174", "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-174", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-174", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H5M", "transit_time": "PT23H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p100", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-174", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-175", "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-175", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H55M", "transit_time": "PT20H55M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T17:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T23:15:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-21T00:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT03H05M", "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": "431" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "431" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT17H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 5 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-175", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p101", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-175", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "evening", "departure_departure_time": "2026-08-20T17:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-176", "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-176", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p139", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-176", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p154", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-176", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-177", "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-177", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p139", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T21:50:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T23:15:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT06H40M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "429" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT18H50M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-177", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p155", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-177", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-178", "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-178", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p140", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-178", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D3H40M", "transit_time": "PT1D3H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p154", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-10T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-10T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-10", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT02H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-178", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-09-10T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609101255blq202609101655952", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "81178272706798221JRYZU", "flight_key": "F1MS00008-179", "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-179", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p140", "routes": [ { "air_segment_key": null, "origin": "BLQ", "departure_time": "2026-08-20T12:55:00", "origin_terminal": "1", "origin_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "destination": "CMN", "arrival_time": "2026-08-20T15:10:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "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": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-08-20T17:00:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-08-20T18:25:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-20", "flight_time": "PT1H25M", "distance": 237, "lay_over": "PT01H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "AT7", "name": "Alenia ATR 72", "picture": "AT7.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "439" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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": "AGA", "departure_time": "2026-08-21T18:05:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "VIL", "arrival_time": "2026-08-21T19:55:00", "destination_terminal": null, "destination_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-08-21", "flight_time": "PT1H50M", "distance": 606, "lay_over": "PT23H40M", "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": "1493" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1493" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 7 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 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-179", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "cd09f219-acd7-4595-88f7-d4926f5b4c35", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p155", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-10T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-10T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-10", "flight_time": "PT2H0M", "distance": 837, "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": "1421" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1421" }, "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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-09-11T07:55:00", "origin_terminal": "1", "origin_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "BLQ", "arrival_time": "2026-09-11T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-11", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT21H10M", "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": 2, "weight": 31.75, "unit": "kg", "title": "2 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": 1839.24, "gross_total": 1829.24, "base_fare": 1542, "tax": 297.24, "sell": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgzOS4yNCwiYmFzZV9mYXJlIjoxNTQyLCJ0YXgiOjI5Ny4yNH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiRVVSIiwidG90YWwiOjE4MjkuMjQsImJhc2VfZmFyZSI6MTUzMiwidGF4IjoyOTcuMjQsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MTgyOS4yNCwiYmFzZV9mYXJlIjoxNTMyLCJ0YXgiOjI5Ny4yNH19", "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": 1839.24, "base_fare": 1542, "tax": 297.24, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 1839.24, "base_fare": 1542, "tax": 297.24, "gross": { "base_fare": "1532.00", "tax": "297.24", "discount": "0.00", "ait": "0.00", "service_charge": 10 }, "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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjE4MzkuMjQiLCJiYXNlX2ZhcmUiOiIxNTQyLjAwIiwidGF4IjoiMjk3LjI0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTUzMi4wMCIsInRheCI6IjI5Ny4yNCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTMyLjAwIiwidGF4IjoiMjk3LjI0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMTgyOS4yNCIsImJhc2VfZmFyZSI6IjE1MzIuMDAiLCJ0YXgiOiIyOTcuMjQiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6MTgyOS4yNCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 1839.24, "filter": { "id": "F1MS00008-179", "price": 1839.24, "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", "AGA" ], "total_segment_count": 5, "no_of_stops": 2, "departure_timing_slot": "afternoon", "departure_departure_time": "2026-08-20T12:55:00", "arrival_timing_slot": "morning", "arrival_departure_time": "2026-09-11T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609100845cmn2026091010451421cmn202609110755blq202609111155946", "destination_reach_time": "PT", "destination_reach_timestamp": null, "itinerary_search": { "trips": [ { "origin": "BLQ", "destination": "VIL", "departureDate": "2026-08-20", "departureTime": "" }, { "origin": "VIL", "destination": "BLQ", "departureDate": "2026-09-10", "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": "VIL", "departure_date": "2026-08-20", "departure_time": "anytime", "departure_time_within": "anytime", "booking_class": "Economy", "stop": "any", "alliance": { "include": [], "exclude": [] }, "country": { "include": [], "exclude": [] }, "airlines": { "include": [], "exclude": [] } }, { "departure_airport_type": "AIRPORT", "departure_airport": "VIL", "arrival_airport_type": "AIRPORT", "arrival_airport": "BLQ", "departure_date": "2026-09-10", "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": "8", "language": "en", "short_ref": "d3d8c810a84179ad7254660d58d27f04762032e84b3ea2720e54083d7aff5d45", "version": 1, "team_profile": [ null ], "RefundableOnly": false, "BestFareOnly": false } }