{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "MLA",
                "name": "Malta",
                "country_code": "MT",
                "country_name": "Malta",
                "is_hub": false
            },
            "destination": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "slug": "mla-opo"
        },
        "parameters": {
            "agencies": [
                "City.Travel",
                "Kiwi.com",
                "Kupi.com",
                "Lucky2Go",
                "Tickets"
            ],
            "agencies_count": 5,
            "airlines": [
                "FR",
                "MW",
                "VY",
                "W4"
            ],
            "airlines_count": 4,
            "airports_arrival": 1,
            "airports_arrival_list": [
                "OPO"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "MLA"
            ],
            "avg_duration_min": 243,
            "avg_price": 53.75,
            "avg_transfers": 0.67,
            "cheapest_agency": "Tickets",
            "cheapest_month": 12,
            "cheapest_weekday": 1,
            "departures_per_week": 1,
            "direct_airlines_list": [
                "FR"
            ],
            "direct_flights_count": 3,
            "direct_share": 33.33,
            "distance_km": 2090,
            "eco_score": 7.6,
            "flight_time_min": 178,
            "flights_found": 9,
            "has_direct": true,
            "max_duration_min": 280,
            "max_price": 67,
            "min_duration_min": 200,
            "min_price": 29,
            "min_price_1stop": 51,
            "min_price_direct": 29,
            "months_with_flights": [
                1,
                11,
                12
            ],
            "popularity_score": 0.5,
            "seasonality": 1,
            "time_diff_hours": -1
        },
        "calendar": [
            {
                "date": "2026-11-15",
                "price_usd": 64,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-17",
                "price_usd": 60,
                "transfers": 1,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 245
            },
            {
                "date": "2026-11-18",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-21",
                "price_usd": 65,
                "transfers": 1,
                "airline": "MW",
                "gate": "Kiwi.com",
                "duration_min": 250
            },
            {
                "date": "2026-12-28",
                "price_usd": 32,
                "transfers": 0,
                "airline": "FR",
                "gate": "City.Travel",
                "duration_min": 200
            },
            {
                "date": "2027-01-08",
                "price_usd": 51,
                "transfers": 1,
                "airline": "W4",
                "gate": "Kupi.com",
                "duration_min": 280
            },
            {
                "date": "2027-01-09",
                "price_usd": 59,
                "transfers": 1,
                "airline": "VY",
                "gate": "Kiwi.com",
                "duration_min": 255
            },
            {
                "date": "2027-01-10",
                "price_usd": 60,
                "transfers": 1,
                "airline": "W4",
                "gate": "Kupi.com",
                "duration_min": 280
            },
            {
                "date": "2027-01-11",
                "price_usd": 29,
                "transfers": 0,
                "airline": "FR",
                "gate": "Tickets",
                "duration_min": 200
            }
        ],
        "variants": [
            {
                "depart_date": "2027-01-11",
                "price_usd": 29,
                "airline": "FR",
                "flight_number": "1509",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "23:30:00",
                "arrival_time": "02:50:00",
                "duration_min": 200,
                "transfers": 0,
                "gate": "Tickets",
                "ticket_id": "0ad46e150fe72a71688cbf2b8f47b088"
            },
            {
                "depart_date": "2026-12-28",
                "price_usd": 32,
                "airline": "FR",
                "flight_number": "1509",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "23:30:00",
                "arrival_time": "02:50:00",
                "duration_min": 200,
                "transfers": 0,
                "gate": "City.Travel",
                "ticket_id": "f1871598c698084316a8088bee4f6bf1"
            },
            {
                "depart_date": "2027-01-08",
                "price_usd": 51,
                "airline": "W4",
                "flight_number": "6218",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "16:10:00",
                "arrival_time": "20:50:00",
                "duration_min": 280,
                "transfers": 1,
                "gate": "Kupi.com",
                "ticket_id": "43d266acbb1ed3384b65f02119d19406"
            },
            {
                "depart_date": "2027-01-09",
                "price_usd": 59,
                "airline": "VY",
                "flight_number": "1159",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "17:50:00",
                "arrival_time": "22:05:00",
                "duration_min": 255,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "6a80437b3f22fc9413c433c213160941"
            },
            {
                "depart_date": "2026-11-17",
                "price_usd": 60,
                "airline": "FR",
                "flight_number": "395",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "21:50:00",
                "arrival_time": "01:55:00",
                "duration_min": 245,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "07ad4f8cabd102a005fcfb17f531cec7"
            },
            {
                "depart_date": "2027-01-10",
                "price_usd": 60,
                "airline": "W4",
                "flight_number": "6218",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "16:10:00",
                "arrival_time": "20:50:00",
                "duration_min": 280,
                "transfers": 1,
                "gate": "Kupi.com",
                "ticket_id": "25e937636e98b2e49fe53d1fddee3ab7"
            },
            {
                "depart_date": "2026-11-21",
                "price_usd": 65,
                "airline": "MW",
                "flight_number": "7795",
                "departure_airport": "MLA",
                "arrival_airport": "OPO",
                "departure_time": "08:50:00",
                "arrival_time": "13:00:00",
                "duration_min": 250,
                "transfers": 1,
                "gate": "Kiwi.com",
                "ticket_id": "f38135b2425dcc814f3550b3753aff9b"
            }
        ],
        "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": 29
            },
            {
                "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": 51
            },
            {
                "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": 59
            },
            {
                "iata": "MW",
                "name": "Malta Air",
                "logo_url": "https://img.wway.io/pics/root/MW@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 14,
                "min_price_usd": 65
            }
        ],
        "agencies": [
            {
                "name": "Tickets",
                "min_price_usd": 29,
                "tickets_count": 1
            },
            {
                "name": "Kiwi.com",
                "min_price_usd": 31,
                "tickets_count": 4
            },
            {
                "name": "City.Travel",
                "min_price_usd": 32,
                "tickets_count": 1
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 51,
                "tickets_count": 2
            },
            {
                "name": "Lucky2Go",
                "min_price_usd": 67,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "MLA",
                    "name": "Malta International Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Malta"
                }
            ],
            "arrival": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/mla-opo/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/mla-opo",
            "qa": "https://cityvator.com/api/qa/route/mla-opo",
            "compare": "https://cityvator.com/api/compare/mla-opo-vs-"
        },
        "updated_at": "2026-11-09 03:57:01"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-13T08:20:38+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}