{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "MIL",
                "name": "Milan",
                "country_code": "IT",
                "country_name": "Italy",
                "is_hub": false
            },
            "slug": "opo-mxp"
        },
        "parameters": {
            "agencies": [
                "Aviakassa",
                "Biletix",
                "City.Travel",
                "Clickavia",
                "EasyJet",
                "Kiwi.com",
                "Kupi.com",
                "Trip.com",
                "Авиасейлс"
            ],
            "agencies_count": 9,
            "airlines": [
                "EC",
                "FR",
                "NI",
                "TP",
                "U2",
                "V7",
                "VY",
                "W4"
            ],
            "airlines_count": 8,
            "airports_arrival": 0,
            "airports_arrival_list": [
                "MXP"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 172,
            "avg_price": 47.0526,
            "avg_transfers": 0.32,
            "cheapest_agency": "Kiwi.com",
            "cheapest_month": 11,
            "cheapest_weekday": 4,
            "departures_per_week": 6,
            "direct_airlines_list": [
                "FR",
                "U2",
                "W4"
            ],
            "direct_flights_count": 47,
            "direct_share": 71.21,
            "distance_km": 1515,
            "eco_score": 8.6,
            "flight_time_min": 137,
            "flights_found": 66,
            "has_direct": true,
            "max_duration_min": 320,
            "max_price": 121,
            "min_duration_min": 145,
            "min_price": 21,
            "min_price_1stop": 42,
            "min_price_direct": 21,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 3.3,
            "seasonality": 1,
            "time_diff_hours": 1
        },
        "calendar": [
            {
                "date": "2026-11-15",
                "price_usd": 63,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 210
            },
            {
                "date": "2026-11-16",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-17",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-18",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-19",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-20",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-21",
                "price_usd": 39,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 150
            },
            {
                "date": "2026-11-22",
                "price_usd": 30,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-23",
                "price_usd": 30,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-24",
                "price_usd": 21,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-11-25",
                "price_usd": 34,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-11-26",
                "price_usd": 39,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-27",
                "price_usd": 44,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-11-28",
                "price_usd": 34,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-29",
                "price_usd": 34,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-30",
                "price_usd": 25,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-12-01",
                "price_usd": 28,
                "transfers": 0,
                "airline": "U2",
                "gate": "Авиасейлс",
                "duration_min": 150
            },
            {
                "date": "2026-12-02",
                "price_usd": 31,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-03",
                "price_usd": 34,
                "transfers": 0,
                "airline": "W4",
                "gate": "Авиасейлс",
                "duration_min": 150
            },
            {
                "date": "2026-12-04",
                "price_usd": 31,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-05",
                "price_usd": 31,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-06",
                "price_usd": 27,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-12-07",
                "price_usd": 66,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-08",
                "price_usd": 105,
                "transfers": 0,
                "airline": "NI",
                "gate": "Aviakassa",
                "duration_min": 275
            },
            {
                "date": "2026-12-09",
                "price_usd": 66,
                "transfers": 0,
                "airline": "EC",
                "gate": "Clickavia",
                "duration_min": 255
            },
            {
                "date": "2026-12-10",
                "price_usd": 42,
                "transfers": 1,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 205
            },
            {
                "date": "2026-12-11",
                "price_usd": 26,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-12-12",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-13",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-14",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-16",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-17",
                "price_usd": 26,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-18",
                "price_usd": 26,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-12-19",
                "price_usd": 29,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 150
            },
            {
                "date": "2026-12-20",
                "price_usd": 29,
                "transfers": 0,
                "airline": "W4",
                "gate": "Clickavia",
                "duration_min": 150
            },
            {
                "date": "2026-12-21",
                "price_usd": 26,
                "transfers": 0,
                "airline": "FR",
                "gate": "Авиасейлс",
                "duration_min": 150
            },
            {
                "date": "2026-12-22",
                "price_usd": 37,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-23",
                "price_usd": 37,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-24",
                "price_usd": 37,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-25",
                "price_usd": 37,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-26",
                "price_usd": 37,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-27",
                "price_usd": 47,
                "transfers": 0,
                "airline": "W4",
                "gate": "Clickavia",
                "duration_min": 150
            },
            {
                "date": "2026-12-28",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-29",
                "price_usd": 54,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 150
            },
            {
                "date": "2026-12-30",
                "price_usd": 39,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-31",
                "price_usd": 25,
                "transfers": 0,
                "airline": "W4",
                "gate": "Kiwi.com",
                "duration_min": 150
            }
        ],
        "variants": [
            {
                "depart_date": "2026-11-24",
                "price_usd": 21,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "09:55:00",
                "arrival_time": "12:25:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "d172472101e60fb7327153d549a1e8e1"
            },
            {
                "depart_date": "2026-11-30",
                "price_usd": 25,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:55:00",
                "arrival_time": "01:25:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "8c93b07424ed9a0fbe235b277867a5fd"
            },
            {
                "depart_date": "2026-12-31",
                "price_usd": 25,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:45:00",
                "arrival_time": "01:15:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "44b6fffb12ce307d72e99866c478e319"
            },
            {
                "depart_date": "2026-12-18",
                "price_usd": 26,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:40:00",
                "arrival_time": "01:10:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "7c5630944a64a981663c76d841aca078"
            },
            {
                "depart_date": "2026-12-11",
                "price_usd": 26,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:40:00",
                "arrival_time": "01:10:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "6af8518fb49807a63e0d2b21ed0af394"
            },
            {
                "depart_date": "2026-12-21",
                "price_usd": 26,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "16:30:00",
                "arrival_time": "19:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Авиасейлс",
                "ticket_id": "7988254d689e39474f238d06e76f16df"
            },
            {
                "depart_date": "2026-12-06",
                "price_usd": 27,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:30:00",
                "arrival_time": "01:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "5bcf5b274d1d20e4e5a6ad8a865ee739"
            },
            {
                "depart_date": "2026-12-01",
                "price_usd": 28,
                "airline": "U2",
                "flight_number": "3882",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:30:00",
                "arrival_time": "01:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Авиасейлс",
                "ticket_id": "854ac0fb9bcb519369be50581a28fa7a"
            },
            {
                "depart_date": "2026-12-20",
                "price_usd": 29,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:30:00",
                "arrival_time": "01:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "41838a7883b763142d6e6e4f7e210fa4"
            },
            {
                "depart_date": "2026-12-19",
                "price_usd": 29,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "18:30:00",
                "arrival_time": "21:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "68b03159dcef87146e5f2b1a7d196f0f"
            },
            {
                "depart_date": "2026-12-03",
                "price_usd": 34,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:45:00",
                "arrival_time": "01:15:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Авиасейлс",
                "ticket_id": "519a937c4d2ebe332879f54cca609989"
            },
            {
                "depart_date": "2026-11-25",
                "price_usd": 34,
                "airline": "FR",
                "flight_number": "8953",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "09:10:00",
                "arrival_time": "11:40:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "838dacd47fe809b82d6298cbf67c10f5"
            },
            {
                "depart_date": "2026-11-21",
                "price_usd": 39,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "18:30:00",
                "arrival_time": "21:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "18355ce54064235644e0872dc3962c69"
            },
            {
                "depart_date": "2026-12-10",
                "price_usd": 42,
                "airline": "FR",
                "flight_number": "1710",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "21:20:00",
                "arrival_time": "00:45:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "0c3f03f29bf3e99d04e53361732fe905"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 44,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "19:50:00",
                "arrival_time": "22:20:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "413dc57cc11604181de001905d66f2ab"
            },
            {
                "depart_date": "2026-12-27",
                "price_usd": 47,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:30:00",
                "arrival_time": "01:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "000ff50938573cb85e65e86214e46140"
            },
            {
                "depart_date": "2026-12-29",
                "price_usd": 54,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "09:55:00",
                "arrival_time": "12:25:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "c73b99411ef96d165d34884002ad6fa8"
            },
            {
                "depart_date": "2026-11-15",
                "price_usd": 63,
                "airline": "FR",
                "flight_number": "2646",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "15:50:00",
                "arrival_time": "19:20:00",
                "duration_min": 210,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "ee2d6cc5e86c44ef0ae3fa2b53900623"
            },
            {
                "depart_date": "2026-11-15",
                "price_usd": 66,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "10:30:00",
                "arrival_time": "13:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "beb4340b2f157e455b590a61a184b896"
            },
            {
                "depart_date": "2026-12-09",
                "price_usd": 66,
                "airline": "EC",
                "flight_number": "6887",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "20:30:00",
                "arrival_time": "00:45:00",
                "duration_min": 255,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "325b19bb4d155516222721f156c98155"
            },
            {
                "depart_date": "2026-12-08",
                "price_usd": 105,
                "airline": "NI",
                "flight_number": "1935",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "23:00:00",
                "arrival_time": "03:35:00",
                "duration_min": 275,
                "transfers": 2,
                "gate": "Aviakassa",
                "ticket_id": "0c03122a88a595b81ab2dcc286dcf8ff"
            },
            {
                "depart_date": "2026-12-09",
                "price_usd": 137,
                "airline": "W4",
                "flight_number": "6336",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:50:00",
                "arrival_time": "01:20:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "f40647db2618f0beb10a87e730396838"
            },
            {
                "depart_date": "2026-12-08",
                "price_usd": 183,
                "airline": "U2",
                "flight_number": "3882",
                "departure_airport": "OPO",
                "arrival_airport": "MXP",
                "departure_time": "22:30:00",
                "arrival_time": "01:00:00",
                "duration_min": 150,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "82ab22e0994c0cd749cdb55d28e3d93a"
            }
        ],
        "airlines": [
            {
                "iata": "FR",
                "name": "Ryanair",
                "logo_url": "https://img.wway.io/pics/root/FR@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 2466,
                "min_price_usd": 21
            },
            {
                "iata": "W4",
                "name": "Wizz Air Malta",
                "logo_url": "https://img.wway.io/pics/root/W4@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 14,
                "min_price_usd": 25
            },
            {
                "iata": "U2",
                "name": "easyJet",
                "logo_url": "https://img.wway.io/pics/root/U2@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 996,
                "min_price_usd": 27
            },
            {
                "iata": "EC",
                "name": "easyJet",
                "logo_url": "https://img.wway.io/pics/root/EC@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 2,
                "min_price_usd": 66
            },
            {
                "iata": "V7",
                "name": "Volotea",
                "logo_url": "https://img.wway.io/pics/root/V7@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 68,
                "min_price_usd": 69
            },
            {
                "iata": "VY",
                "name": "Vueling",
                "logo_url": "https://img.wway.io/pics/root/VY@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 228,
                "min_price_usd": 72
            },
            {
                "iata": "TP",
                "name": "TAP Air Portugal",
                "logo_url": "https://img.wway.io/pics/root/TP@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 282,
                "min_price_usd": 78
            },
            {
                "iata": "NI",
                "name": "Portugalia Airlines",
                "logo_url": "https://img.wway.io/pics/root/NI@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 0,
                "min_price_usd": 105
            }
        ],
        "agencies": [
            {
                "name": "Kiwi.com",
                "min_price_usd": 21,
                "tickets_count": 23
            },
            {
                "name": "Авиасейлс",
                "min_price_usd": 26,
                "tickets_count": 10
            },
            {
                "name": "Clickavia",
                "min_price_usd": 29,
                "tickets_count": 18
            },
            {
                "name": "Biletix",
                "min_price_usd": 35,
                "tickets_count": 3
            },
            {
                "name": "EasyJet",
                "min_price_usd": 50,
                "tickets_count": 2
            },
            {
                "name": "City.Travel",
                "min_price_usd": 65,
                "tickets_count": 4
            },
            {
                "name": "Trip.com",
                "min_price_usd": 69,
                "tickets_count": 3
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 78,
                "tickets_count": 2
            },
            {
                "name": "Aviakassa",
                "min_price_usd": 105,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "MXP",
                    "name": "Milano Malpensa Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Rome"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-mxp/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-mxp",
            "qa": "https://cityvator.com/api/qa/route/opo-mxp",
            "compare": "https://cityvator.com/api/compare/opo-mxp-vs-"
        },
        "updated_at": "2026-10-16 18:07:25"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T16:59:09+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}