{ "status": "success", "tracking_id": "81178272728498221OF5SD", "performanceDuration": "", "data": [ { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p5", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 375.84, "gross_total": 365.84, "base_fare": 198, "tax": 177.84, "sell": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzc1Ljg0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM3NS44NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 375.84, "filter": { "id": "F1MS00008-0", "price": 375.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p6", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 375.84, "gross_total": 365.84, "base_fare": 198, "tax": 177.84, "sell": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzc1Ljg0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM3NS44NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 375.84, "filter": { "id": "F1MS00008-1", "price": 375.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p7", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 375.84, "gross_total": 365.84, "base_fare": 198, "tax": 177.84, "sell": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzc1Ljg0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNjUuODQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 375.84, "base_fare": 198, "tax": 177.84, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM3NS44NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzY1Ljg0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 375.84, "filter": { "id": "F1MS00008-2", "price": 375.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p20", "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": "PT20H25M", "transit_time": "PT20H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-3", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p20", "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": "PT23H25M", "transit_time": "PT23H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-4", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p20", "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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p37", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-5", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p21", "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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-6", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p21", "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": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-7", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p21", "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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p37", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-8", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p35", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-9", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "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": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p36", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-10", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p22", "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": "PT1D16H25M", "transit_time": "PT1D16H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p37", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.84, "gross_total": 370.84, "base_fare": 203, "tax": 177.84, "sell": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg0LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODQsImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.84, "base_fare": 203, "tax": 177.84, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44NCIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg0IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.84, "filter": { "id": "F1MS00008-11", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p50", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p55", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-12", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p50", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p56", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-13", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p65", "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": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-14", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p65", "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": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-15", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p65", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-16", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p66", "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": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p75", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-17", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p66", "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": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p76", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-18", "price": 380.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p66", "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": "PT1D20H5M", "transit_time": "PT1D20H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p77", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 380.89, "gross_total": 370.89, "base_fare": 198, "tax": 182.89, "sell": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6MzgwLjg5LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzAuODksImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 380.89, "base_fare": 198, "tax": 182.89, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4MC44OSIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzcwLjg5IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 380.89, "filter": { "id": "F1MS00008-19", "price": 380.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p90", "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": "PT9H30M", "transit_time": "PT9H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-20", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p90", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-21", "price": 385.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p91", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-22", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p91", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-23", "price": 385.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p92", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p105", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-24", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p92", "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": "PT1D5H30M", "transit_time": "PT1D5H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p106", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-25", "price": 385.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p125", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-26", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p126", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-27", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p127", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-28", "price": 385.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p125", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-29", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p126", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-30", "price": 385.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "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": "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p127", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.89, "gross_total": 375.89, "base_fare": 203, "tax": 182.89, "sell": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljg5LCJiYXNlX2ZhcmUiOjIwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuODksImJhc2VfZmFyZSI6MTkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "193.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.89, "base_fare": 203, "tax": 182.89, "gross": { "base_fare": "193.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS44OSIsImJhc2VfZmFyZSI6IjIwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljg5IiwiYmFzZV9mYXJlIjoiMTkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.89, "filter": { "id": "F1MS00008-31", "price": 385.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p140", "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": "PT1D3H45M", "transit_time": "PT1D3H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p150", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.94, "gross_total": 375.94, "base_fare": 198, "tax": 187.94, "sell": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljk0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS45NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.94, "filter": { "id": "F1MS00008-32", "price": 385.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p140", "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": "PT1D8H45M", "transit_time": "PT1D8H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p151", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.94, "gross_total": 375.94, "base_fare": 198, "tax": 187.94, "sell": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljk0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS45NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.94, "filter": { "id": "F1MS00008-33", "price": 385.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p141", "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": "PT1D4H10M", "transit_time": "PT1D4H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p150", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 6 }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "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": 385.94, "gross_total": 375.94, "base_fare": 198, "tax": 187.94, "sell": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljk0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS45NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.94, "filter": { "id": "F1MS00008-34", "price": 385.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p141", "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": "PT1D9H10M", "transit_time": "PT1D9H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p151", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Essential", "cabin_code": "EESSENTIAL", "booking_code": "EESSENTIAL", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 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": 385.94, "gross_total": 375.94, "base_fare": 198, "tax": 187.94, "sell": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6Mzg1Ljk0LCJiYXNlX2ZhcmUiOjE5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjozNzUuOTQsImJhc2VfZmFyZSI6MTg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "188.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 385.94, "base_fare": 198, "tax": 187.94, "gross": { "base_fare": "188.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjM4NS45NCIsImJhc2VfZmFyZSI6IjE5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiMzc1Ljk0IiwiYmFzZV9mYXJlIjoiMTg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjM3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 385.94, "filter": { "id": "F1MS00008-35", "price": 385.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p8", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 425.84, "gross_total": 415.84, "base_fare": 248, "tax": 177.84, "sell": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDI1Ljg0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQyNS44NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQxNS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 425.84, "filter": { "id": "F1MS00008-36", "price": 425.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p9", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 425.84, "gross_total": 415.84, "base_fare": 248, "tax": 177.84, "sell": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDI1Ljg0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQyNS44NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQxNS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 425.84, "filter": { "id": "F1MS00008-37", "price": 425.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p10", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 425.84, "gross_total": 415.84, "base_fare": 248, "tax": 177.84, "sell": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDI1Ljg0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MTUuODQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 425.84, "base_fare": 248, "tax": 177.84, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQyNS44NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDE1Ljg0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQxNS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 425.84, "filter": { "id": "F1MS00008-38", "price": 425.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "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": "PT20H25M", "transit_time": "PT20H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-39", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "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": "PT23H25M", "transit_time": "PT23H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-40", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p23", "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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-41", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-42", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-43", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-44", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p38", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-45", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "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": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p39", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-46", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p25", "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": "PT1D16H25M", "transit_time": "PT1D16H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p40", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.84, "gross_total": 420.84, "base_fare": 253, "tax": 177.84, "sell": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg0LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODQsImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.84, "base_fare": 253, "tax": 177.84, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44NCIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg0IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.84, "filter": { "id": "F1MS00008-47", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p51", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p57", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-48", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p51", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p58", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-49", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p67", "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": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-50", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p67", "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": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p79", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-51", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p67", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p80", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-52", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p68", "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": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p78", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-53", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p68", "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": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p79", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-54", "price": 430.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p68", "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": "PT1D20H5M", "transit_time": "PT1D20H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p80", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 430.89, "gross_total": 420.89, "base_fare": 248, "tax": 182.89, "sell": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDMwLjg5LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjAuODksImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 430.89, "base_fare": 248, "tax": 182.89, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzMC44OSIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDIwLjg5IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyMC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 430.89, "filter": { "id": "F1MS00008-55", "price": 430.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p93", "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": "PT9H30M", "transit_time": "PT9H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-56", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p93", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-57", "price": 435.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p94", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-58", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p94", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-59", "price": 435.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p95", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p107", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-60", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p95", "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": "PT1D5H30M", "transit_time": "PT1D5H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p108", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-61", "price": 435.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p117", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p128", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-62", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p117", "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p129", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-63", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p117", "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p130", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-64", "price": 435.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p118", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p128", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-65", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p118", "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p129", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-66", "price": 435.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p118", "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p130", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.89, "gross_total": 425.89, "base_fare": 253, "tax": 182.89, "sell": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljg5LCJiYXNlX2ZhcmUiOjI1MywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuODksImJhc2VfZmFyZSI6MjQzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "243.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.89, "base_fare": 253, "tax": 182.89, "gross": { "base_fare": "243.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS44OSIsImJhc2VfZmFyZSI6IjI1My4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjI0My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljg5IiwiYmFzZV9mYXJlIjoiMjQzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.89, "filter": { "id": "F1MS00008-67", "price": 435.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p142", "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": "PT1D3H45M", "transit_time": "PT1D3H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p152", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.94, "gross_total": 425.94, "base_fare": 248, "tax": 187.94, "sell": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljk0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS45NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.94, "filter": { "id": "F1MS00008-68", "price": 435.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p142", "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": "PT1D8H45M", "transit_time": "PT1D8H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p153", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.94, "gross_total": 425.94, "base_fare": 248, "tax": 187.94, "sell": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljk0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS45NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.94, "filter": { "id": "F1MS00008-69", "price": 435.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p143", "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": "PT1D4H10M", "transit_time": "PT1D4H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p152", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.94, "gross_total": 425.94, "base_fare": 248, "tax": 187.94, "sell": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljk0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS45NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.94, "filter": { "id": "F1MS00008-70", "price": 435.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p143", "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": "PT1D9H10M", "transit_time": "PT1D9H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p153", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Classic", "cabin_code": "ECLASSIC", "booking_code": "ECLASSIC", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 435.94, "gross_total": 425.94, "base_fare": 248, "tax": 187.94, "sell": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NDM1Ljk0LCJiYXNlX2ZhcmUiOjI0OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo0MjUuOTQsImJhc2VfZmFyZSI6MjM4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "238.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 435.94, "base_fare": 248, "tax": 187.94, "gross": { "base_fare": "238.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjQzNS45NCIsImJhc2VfZmFyZSI6IjI0OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjIzOC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNDI1Ljk0IiwiYmFzZV9mYXJlIjoiMjM4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjQyNS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 435.94, "filter": { "id": "F1MS00008-71", "price": 435.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p11", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 575.84, "gross_total": 565.84, "base_fare": 398, "tax": 177.84, "sell": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTc1Ljg0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU3NS44NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 575.84, "filter": { "id": "F1MS00008-72", "price": 575.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p12", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 575.84, "gross_total": 565.84, "base_fare": 398, "tax": 177.84, "sell": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTc1Ljg0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU3NS44NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 575.84, "filter": { "id": "F1MS00008-73", "price": 575.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p13", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 575.84, "gross_total": 565.84, "base_fare": 398, "tax": 177.84, "sell": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTc1Ljg0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NjUuODQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 575.84, "base_fare": 398, "tax": 177.84, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU3NS44NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTY1Ljg0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU2NS44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 575.84, "filter": { "id": "F1MS00008-74", "price": 575.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "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": "PT20H25M", "transit_time": "PT20H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-75", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "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": "PT23H25M", "transit_time": "PT23H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-76", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p26", "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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-77", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-78", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-79", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-80", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "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": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p41", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-81", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "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": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p42", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-82", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p28", "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": "PT1D16H25M", "transit_time": "PT1D16H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p43", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.84, "gross_total": 570.84, "base_fare": 403, "tax": 177.84, "sell": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg0LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxNzcuODR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODQsImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE3Ny44NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "177.84", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.84, "base_fare": 403, "tax": 177.84, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44NCIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE3Ny44NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE3Ny44NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg0IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTc3Ljg0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.84, "filter": { "id": "F1MS00008-83", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p52", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p59", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-84", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p52", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p60", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-85", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p69", "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": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p81", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-86", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p69", "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": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p82", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-87", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p69", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p83", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-88", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p70", "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": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p81", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-89", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p70", "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": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p82", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-90", "price": 580.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p70", "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": "PT1D20H5M", "transit_time": "PT1D20H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p83", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 580.89, "gross_total": 570.89, "base_fare": 398, "tax": 182.89, "sell": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTgwLjg5LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzAuODksImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 580.89, "base_fare": 398, "tax": 182.89, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4MC44OSIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTcwLjg5IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3MC44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 580.89, "filter": { "id": "F1MS00008-91", "price": 580.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p96", "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": "PT9H30M", "transit_time": "PT9H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-92", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p96", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-93", "price": 585.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p97", "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": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-94", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p97", "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": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-95", "price": 585.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p98", "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": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p109", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-96", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p98", "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": "PT1D5H30M", "transit_time": "PT1D5H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p110", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-97", "price": 585.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p119", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p131", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-98", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p119", "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p132", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-99", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p119", "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p133", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-100", "price": 585.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p120", "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": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p131", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-101", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p120", "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": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p132", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-102", "price": 585.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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p120", "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": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p133", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.89, "gross_total": 575.89, "base_fare": 403, "tax": 182.89, "sell": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljg5LCJiYXNlX2ZhcmUiOjQwMywidGF4IjoxODIuODl9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OSwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuODksImJhc2VfZmFyZSI6MzkzLCJ0YXgiOjE4Mi44OX19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "393.00", "tax": "182.89", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.89, "base_fare": 403, "tax": 182.89, "gross": { "base_fare": "393.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS44OSIsImJhc2VfZmFyZSI6IjQwMy4wMCIsInRheCI6IjE4Mi44OSIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM5My4wMCIsInRheCI6IjE4Mi44OSIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljg5IiwiYmFzZV9mYXJlIjoiMzkzLjAwIiwidGF4IjoiMTgyLjg5IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS44OSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.89, "filter": { "id": "F1MS00008-103", "price": 585.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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p144", "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": "PT1D3H45M", "transit_time": "PT1D3H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p154", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.94, "gross_total": 575.94, "base_fare": 398, "tax": 187.94, "sell": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljk0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS45NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.94, "filter": { "id": "F1MS00008-104", "price": 585.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p144", "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": "PT1D8H45M", "transit_time": "PT1D8H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p155", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.94, "gross_total": 575.94, "base_fare": 398, "tax": 187.94, "sell": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljk0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS45NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.94, "filter": { "id": "F1MS00008-105", "price": 585.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p145", "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": "PT1D4H10M", "transit_time": "PT1D4H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p154", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.68 kg" } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 6 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.94, "gross_total": 575.94, "base_fare": 398, "tax": 187.94, "sell": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljk0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS45NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.94, "filter": { "id": "F1MS00008-106", "price": 585.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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p145", "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": "PT1D9H10M", "transit_time": "PT1D9H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p155", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-09-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "952" }, "booking_class": { "cabin_class": "Eco Flex Premium", "cabin_code": "EFLEX", "booking_code": "EFLEX", "meal_code": null, "seat_available": 9 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 1, "weight": 22.68, "unit": "kg", "title": "1 pieces 22.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": 585.94, "gross_total": 575.94, "base_fare": 398, "tax": 187.94, "sell": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6NTg1Ljk0LCJiYXNlX2ZhcmUiOjM5OCwidGF4IjoxODcuOTR9LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NCwiY29taXNzaW9uX3R5cGUiOiJnZW5lcmFsIiwiY29taXNzaW9uX3ZhbHVlIjowfSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjo1NzUuOTQsImJhc2VfZmFyZSI6Mzg4LCJ0YXgiOjE4Ny45NH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "388.00", "tax": "187.94", "discount": 0, "ait": "0.00", "service_charge": 10 }, "partner": { "currency": "EUR", "total": 585.94, "base_fare": 398, "tax": 187.94, "gross": { "base_fare": "388.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": "eyJmbWciOnsiY3VycmVuY3kiOiJFVVIiLCJ0b3RhbCI6IjU4NS45NCIsImJhc2VfZmFyZSI6IjM5OC4wMCIsInRheCI6IjE4Ny45NCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjM4OC4wMCIsInRheCI6IjE4Ny45NCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjEwLjAwIn0sImNvbmZpZyI6eyJtYXJrdXBfdHlwZSI6bnVsbCwibWFya3VwX3RpdGxlIjpudWxsLCJyZXZlbnVlIjoiMTAuMDAiLCJ0aWNrZXRfaXNzdWVfY2hhcmdlIjoiMC4wMCIsInRvdGFsX3RpY2tldF9pc3N1ZV9jaGFyZ2UiOiIwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IkVVUiIsInRvdGFsIjoiNTc1Ljk0IiwiYmFzZV9mYXJlIjoiMzg4LjAwIiwidGF4IjoiMTg3Ljk0IiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjoiMC4wMCIsInBheWFibGUiOjU3NS45NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiIwLjAwIn0sInN1cHBsaWVyVGF4RGF0YSI6W119fSwiZGlzY291bnRfY29taXNzaW9uX3RpdGxlIjpudWxsLCJkaXNjb3VudF9jb21pc3Npb25fcmF0aW8iOjAsImR5bmFtaWNfbWFya3VwX3R5cGUiOm51bGwsImR5bmFtaWNfbWFya3VwX3RpdGxlIjpudWxsLCJkeW5hbWljX21hcmt1cF9yYXRpbyI6bnVsbCwiYXBwbGljYWJsZV9jb21pc3Npb24iOm51bGwsImFwcGxpY2FibGVfZHluYW1pY19tYXJrdXAiOm51bGx9" } ] }, "fare_rules": { "refundable_data": null, "refundable": "partially-refundable", "change_before_departure": "available" }, "total_price": 585.94, "filter": { "id": "F1MS00008-107", "price": 585.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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p14", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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-109", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p15", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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-110", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p16", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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": "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "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-111", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "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-112", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-112", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p29", "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-113", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-113", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-114", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-114", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-115", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-115", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-116", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-116", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p31", "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-117", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p44", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-117", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p31", "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-118", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p45", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-118", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p31", "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-119", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D16H25M", "transit_time": "PT1D16H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p46", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-119", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p53", "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-120", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p61", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-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": "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p53", "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-121", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p62", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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": "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p71", "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-122", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p84", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p71", "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-123", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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": "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p71", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-124", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p72", "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-125", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p84", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-125", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p72", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p85", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-126", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o7", "productId": "p72", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D20H5M", "transit_time": "PT1D20H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p86", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-127", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p99", "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-128", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H30M", "transit_time": "PT9H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-128", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p99", "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-129", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p112", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-129", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p100", "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-130", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-130", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p100", "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-131", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p112", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-131", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p101", "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-132", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p111", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-132", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o9", "productId": "p101", "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-133", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D5H30M", "transit_time": "PT1D5H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p112", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-133", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p121", "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-134", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p134", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-134", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p121", "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-135", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p135", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-135", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p121", "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-136", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p136", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-136", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p122", "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-137", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p134", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-137", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p122", "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-138", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p135", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-138", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p122", "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-139", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p136", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-139", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p146", "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-140", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D3H45M", "transit_time": "PT1D3H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p156", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-140", "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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p146", "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-141", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D8H45M", "transit_time": "PT1D8H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p157", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-141", "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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p147", "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-142", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H10M", "transit_time": "PT1D4H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p156", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-142", "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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p147", "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-143", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H10M", "transit_time": "PT1D9H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p157", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Classic", "cabin_code": "BCLASSIC", "booking_code": "BCLASSIC", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-143", "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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-144", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p17", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-144", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-145", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D9H25M", "transit_time": "PT1D9H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p18", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-145", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-146", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o2", "productId": "p19", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-146", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p32", "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-147", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT20H25M", "transit_time": "PT20H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-147", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p32", "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-148", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT23H25M", "transit_time": "PT23H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-148", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p32", "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-149", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-149", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-150", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D1H25M", "transit_time": "PT1D1H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-150", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-151", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D4H25M", "transit_time": "PT1D4H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-151", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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 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-152", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D6H25M", "transit_time": "PT1D6H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-152", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p34", "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-153", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D11H25M", "transit_time": "PT1D11H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p47", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-153", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p34", "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-154", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H25M", "transit_time": "PT1D14H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p48", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-154", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o3", "productId": "p34", "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-155", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D16H25M", "transit_time": "PT1D16H25M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o4", "productId": "p49", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-155", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p54", "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-156", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p63", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-156", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT12H15M", "transit_time": "PT12H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o5", "productId": "p54", "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-157", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o6", "productId": "p64", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-157", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-158", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D14H40M", "transit_time": "PT1D14H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-158", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-159", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D17H40M", "transit_time": "PT1D17H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-159", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-160", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-160", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-161", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D15H5M", "transit_time": "PT1D15H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p87", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-161", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-162", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D18H5M", "transit_time": "PT1D18H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p88", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-162", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-163", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D20H5M", "transit_time": "PT1D20H5M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o8", "productId": "p89", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-163", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-164", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT9H30M", "transit_time": "PT9H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p113", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-164", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT2H15M", "transit_time": "PT2H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-165", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p114", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-165", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-166", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT14H30M", "transit_time": "PT14H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p113", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-166", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT7H15M", "transit_time": "PT7H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-167", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT19H30M", "transit_time": "PT19H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p114", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-167", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202225vil2026082100451420vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-168", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D0H30M", "transit_time": "PT1D0H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p113", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-168", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT17H15M", "transit_time": "PT17H15M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "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": "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-169", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D5H30M", "transit_time": "PT1D5H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o10", "productId": "p114", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-169", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608210825vil2026082110451422vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p123", "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-170", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p137", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-170", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p123", "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-171", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p138", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-171", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p123", "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-172", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p139", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-172", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p124", "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-173", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D19H40M", "transit_time": "PT1D19H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p137", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-173", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p124", "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-174", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT1D22H40M", "transit_time": "PT1D22H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p138", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T08:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T10:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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": 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-174", "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609200845cmn2026092010451421cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT1D1H30M", "transit_time": "PT1D1H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o11", "productId": "p124", "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-175", "get_branded_fare": "no", "no_of_stops_title": "1 Stop Flight", "no_of_stops": 1, "flight_time": "PT2D0H40M", "transit_time": "PT2D0H40M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o12", "productId": "p139", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T11:45:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-20T13:45:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT2H0M", "distance": 837, "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": "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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT23H10M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-175", "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": "evening", "arrival_departure_time": "2026-09-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201255cmn202608201510947cmn202608201700aga202608201825439aga202608211805vil2026082119551493vil202609201145cmn2026092013451423cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p148", "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-176", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D3H45M", "transit_time": "PT1D3H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p158", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-176", "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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H30M", "transit_time": "PT20H30M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p148", "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-177", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D8H45M", "transit_time": "PT1D8H45M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p159", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-177", "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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202150aga202608202315429aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p149", "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-178", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D4H10M", "transit_time": "PT1D4H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p158", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "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": "AGA", "departure_time": "2026-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "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-21T07: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-21T11:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "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-178", "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" ], "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-21T11:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609210755blq202609211155946", "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-20", "departureTime": "" } ], "adults": 1, "children": 0, "infants": 0, "cabinClass": [ "Economy" ], "preferredAirlines": [ "all" ], "brandedFare": true, "publicFare": true, "privateFare": true, "ticketType": "all", "connectionType": "all", "contentType": [ "GDS", "NDC" ], "country": [], "isCalenderSearch": false } }, { "tracking_id": "81178272728498221OF5SD", "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": "PT20H55M", "transit_time": "PT20H55M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o13", "productId": "p149", "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-179", "get_branded_fare": "no", "no_of_stops_title": "2 Stop Flight", "no_of_stops": 2, "flight_time": "PT1D9H10M", "transit_time": "PT1D9H10M", "responseId": "ee1d5395-91b6-4a08-bfe1-eefddb50c9ac", "source": "GDS:TravelPort", "offerId": "o14", "productId": "p159", "routes": [ { "air_segment_key": null, "origin": "VIL", "departure_time": "2026-09-20T22:05:00", "origin_terminal": null, "origin_airport": { "name": "Dakhla Airport", "city": "Dakhla", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "AGA", "arrival_time": "2026-09-20T23:40:00", "destination_terminal": null, "destination_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-20", "flight_time": "PT1H35M", "distance": 606, "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": "1491" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "1491" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-09-21T00:30:00", "origin_terminal": null, "origin_airport": { "name": "Agadir-Al Massira Airport", "city": "Agadir", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "destination": "CMN", "arrival_time": "2026-09-21T01:30:00", "destination_terminal": "2", "destination_airport": { "name": "Mohammed V International Airport", "city": "Casablanca", "country": "Morocco", "timezone": "Africa\/Casablanca" }, "flight_date": "2026-09-21", "flight_time": "PT1H0M", "distance": 237, "lay_over": "PT00H50M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.png" }, "operating": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "marketing": { "carrier": "AT", "carrier_name": "Royal Air Maroc", "carrier_logo": "AT.png", "flight_number": "424" }, "booking_class": { "cabin_class": "Bus Flex Premium", "cabin_code": "BFLEX", "booking_code": "BFLEX", "meal_code": null, "seat_available": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-21T12: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-21T16:55:00", "destination_terminal": null, "destination_airport": { "name": "Bologna Guglielmo Marconi Airport", "city": "Bologna", "country": "Italy", "timezone": "Europe\/Rome" }, "flight_date": "2026-09-21", "flight_time": "PT4H0M", "distance": 1270, "lay_over": "PT11H25M", "lay_over_date": "not-applicable", "aircraft": { "code": "73H", "name": "Boeing 737", "picture": "73H.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": 1 }, "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": 2, "weight": 31.75, "unit": "kg", "title": "2 pieces 31.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-179", "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" ], "total_segment_count": 6, "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-21T16:55:00", "refund": "partially-refundable", "baggage_value": null, "baggage_unit": null, "baggage_title": "no-baggage" }, "filter_unique_filter_code": "blq202608201755cmn202608202010953cmn202608202315aga202608210015431aga202608211805vil2026082119551493vil202609202205aga2026092023401491aga202609210030cmn202609210130424cmn202609211255blq202609211655952", "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-20", "departureTime": "" } ], "adults": 1, "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-20", "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" ], "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": "f15b98cb9d08350fe7d5621aa605df62eef43113d27b7ff5291813cc8f5bf6d8", "version": 1, "team_profile": [ null ], "RefundableOnly": false, "BestFareOnly": false } }