{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "MPM",
                "name": "Maputo",
                "country_code": "MZ",
                "country_name": "Mozambique",
                "is_hub": false
            },
            "slug": "opo-mpm"
        },
        "parameters": {
            "agencies": [
                "Farera",
                "Flightnetwork",
                "Kiwi.com",
                "Kupi.com",
                "Lucky2Go"
            ],
            "agencies_count": 5,
            "airlines": [
                "ET",
                "FR",
                "TP",
                "UX"
            ],
            "airlines_count": 4,
            "airports_arrival": 1,
            "airports_arrival_list": [
                "MPM"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 864,
            "avg_price": 672.7143,
            "avg_transfers": 2.57,
            "cheapest_agency": "Kiwi.com",
            "cheapest_month": 12,
            "cheapest_weekday": 2,
            "departures_per_week": 1,
            "direct_flights_count": 0,
            "direct_share": 0,
            "distance_km": 8587,
            "eco_score": 0.6,
            "flight_time_min": 636,
            "flights_found": 7,
            "has_direct": false,
            "max_duration_min": 1065,
            "max_price": 733,
            "min_duration_min": 800,
            "min_price": 624,
            "min_price_1stop": 635,
            "months_with_flights": [
                12
            ],
            "popularity_score": 0.4,
            "seasonality": 1,
            "time_diff_hours": 2
        },
        "calendar": [
            {
                "date": "2026-12-05",
                "price_usd": 624,
                "transfers": 3,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 1065
            },
            {
                "date": "2026-12-08",
                "price_usd": 635,
                "transfers": 1,
                "airline": "ET",
                "gate": "Farera",
                "duration_min": 875
            },
            {
                "date": "2026-12-09",
                "price_usd": 631,
                "transfers": 3,
                "airline": "TP",
                "gate": "Flightnetwork",
                "duration_min": 825
            },
            {
                "date": "2026-12-15",
                "price_usd": 688,
                "transfers": 3,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 805
            },
            {
                "date": "2026-12-16",
                "price_usd": 703,
                "transfers": 3,
                "airline": "FR",
                "gate": "Lucky2Go",
                "duration_min": 870
            },
            {
                "date": "2026-12-19",
                "price_usd": 733,
                "transfers": 3,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 805
            },
            {
                "date": "2026-12-23",
                "price_usd": 695,
                "transfers": 2,
                "airline": "UX",
                "gate": "Kupi.com",
                "duration_min": 800
            }
        ],
        "variants": [
            {
                "depart_date": "2026-12-05",
                "price_usd": 624,
                "airline": "FR",
                "flight_number": "7073",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "22:50:00",
                "arrival_time": "16:35:00",
                "duration_min": 1065,
                "transfers": 3,
                "gate": "Kiwi.com",
                "ticket_id": "8ef08aa70aec9d5d6f32b745a94c606a"
            },
            {
                "depart_date": "2026-12-09",
                "price_usd": 631,
                "airline": "TP",
                "flight_number": "1931",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "19:00:00",
                "arrival_time": "08:45:00",
                "duration_min": 825,
                "transfers": 3,
                "gate": "Flightnetwork",
                "ticket_id": "9555b76ab6ec36e85213ef7e9742d86a"
            },
            {
                "depart_date": "2026-12-08",
                "price_usd": 635,
                "airline": "ET",
                "flight_number": "741",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "21:00:00",
                "arrival_time": "11:35:00",
                "duration_min": 875,
                "transfers": 1,
                "gate": "Farera",
                "ticket_id": "3c3d3908e1e995123d78b1432540dde9"
            },
            {
                "depart_date": "2026-12-15",
                "price_usd": 688,
                "airline": "FR",
                "flight_number": "573",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "09:30:00",
                "arrival_time": "22:55:00",
                "duration_min": 805,
                "transfers": 3,
                "gate": "Kiwi.com",
                "ticket_id": "5127b94d4a4f656584569b671a8ab544"
            },
            {
                "depart_date": "2026-12-23",
                "price_usd": 695,
                "airline": "UX",
                "flight_number": "1140",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "19:05:00",
                "arrival_time": "08:25:00",
                "duration_min": 800,
                "transfers": 2,
                "gate": "Kupi.com",
                "ticket_id": "b8123ed5051726811111abd8868fd0cb"
            },
            {
                "depart_date": "2026-12-16",
                "price_usd": 703,
                "airline": "FR",
                "flight_number": "5467",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "15:20:00",
                "arrival_time": "05:50:00",
                "duration_min": 870,
                "transfers": 3,
                "gate": "Lucky2Go",
                "ticket_id": "497ded51660705ec54e625d9092ebe7b"
            },
            {
                "depart_date": "2026-12-19",
                "price_usd": 733,
                "airline": "FR",
                "flight_number": "5485",
                "departure_airport": "OPO",
                "arrival_airport": "MPM",
                "departure_time": "21:50:00",
                "arrival_time": "11:15:00",
                "duration_min": 805,
                "transfers": 3,
                "gate": "Kiwi.com",
                "ticket_id": "6c66ba76258ee4a9aaa90ec3062ac53c"
            }
        ],
        "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": 624
            },
            {
                "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": 631
            },
            {
                "iata": "ET",
                "name": "Ethiopian Airlines",
                "logo_url": "https://img.wway.io/pics/root/ET@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 223,
                "min_price_usd": 635
            },
            {
                "iata": "UX",
                "name": "Air Europa",
                "logo_url": "https://img.wway.io/pics/root/UX@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 128,
                "min_price_usd": 695
            }
        ],
        "agencies": [
            {
                "name": "Kiwi.com",
                "min_price_usd": 624,
                "tickets_count": 3
            },
            {
                "name": "Flightnetwork",
                "min_price_usd": 631,
                "tickets_count": 1
            },
            {
                "name": "Farera",
                "min_price_usd": 635,
                "tickets_count": 1
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 695,
                "tickets_count": 1
            },
            {
                "name": "Lucky2Go",
                "min_price_usd": 703,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "MPM",
                    "name": "Maputo International Airport",
                    "iata_type": "airport",
                    "time_zone": "Africa/Maputo"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-mpm/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-mpm",
            "qa": "https://cityvator.com/api/qa/route/opo-mpm",
            "compare": "https://cityvator.com/api/compare/opo-mpm-vs-"
        },
        "updated_at": "2026-11-08 04:41:31"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T14:49:53+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}