{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "CGN",
                "name": "Cologne",
                "country_code": "DE",
                "country_name": "Germany",
                "is_hub": false
            },
            "slug": "opo-cgn"
        },
        "parameters": {
            "agencies": [
                "Aviakassa",
                "City.Travel",
                "Clickavia",
                "Farera",
                "Flightnetwork",
                "Kiwi.com",
                "Kupi.com",
                "Lucky2Go",
                "Tickets"
            ],
            "agencies_count": 9,
            "airlines": [
                "EW",
                "FR",
                "TP",
                "VY",
                "W4"
            ],
            "airlines_count": 5,
            "airports_arrival": 1,
            "airports_arrival_list": [
                "CGN"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 214,
            "avg_price": 131.7059,
            "avg_transfers": 0.52,
            "cheapest_agency": "Clickavia",
            "cheapest_month": 12,
            "cheapest_weekday": 2,
            "departures_per_week": 2,
            "direct_airlines_list": [
                "EW",
                "FR"
            ],
            "direct_flights_count": 16,
            "direct_share": 59.26,
            "distance_km": 1616,
            "eco_score": 8.2,
            "flight_time_min": 144,
            "flights_found": 27,
            "has_direct": true,
            "max_duration_min": 410,
            "max_price": 236,
            "min_duration_min": 160,
            "min_price": 35,
            "min_price_1stop": 77,
            "min_price_direct": 35,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 1.4,
            "seasonality": 1,
            "time_diff_hours": 1
        },
        "calendar": [
            {
                "date": "2026-11-20",
                "price_usd": 72,
                "transfers": 0,
                "airline": "FR",
                "gate": "Tickets",
                "duration_min": 160
            },
            {
                "date": "2026-11-21",
                "price_usd": 122,
                "transfers": 0,
                "airline": "FR",
                "gate": "City.Travel",
                "duration_min": 160
            },
            {
                "date": "2026-11-22",
                "price_usd": 77,
                "transfers": 0,
                "airline": "FR",
                "gate": "Lucky2Go",
                "duration_min": 240
            },
            {
                "date": "2026-11-27",
                "price_usd": 101,
                "transfers": 0,
                "airline": "VY",
                "gate": "Clickavia",
                "duration_min": 245
            },
            {
                "date": "2026-12-01",
                "price_usd": 40,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 160
            },
            {
                "date": "2026-12-08",
                "price_usd": 55,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 160
            },
            {
                "date": "2026-12-15",
                "price_usd": 35,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 160
            }
        ],
        "variants": [
            {
                "depart_date": "2026-12-15",
                "price_usd": 35,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "20:55:00",
                "arrival_time": "23:35:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "e2b6697f340059319c888b2b611b5606"
            },
            {
                "depart_date": "2026-12-01",
                "price_usd": 40,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "20:55:00",
                "arrival_time": "23:35:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "2a02c40d6e1acebf014391336f7be922"
            },
            {
                "depart_date": "2026-12-08",
                "price_usd": 55,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "20:55:00",
                "arrival_time": "23:35:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "Clickavia",
                "ticket_id": "847a150aad9ec51501cbe7b6372e5e21"
            },
            {
                "depart_date": "2026-11-20",
                "price_usd": 72,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "22:55:00",
                "arrival_time": "01:35:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "Tickets",
                "ticket_id": "e46d3f689794a4219a04b7149a85b6ee"
            },
            {
                "depart_date": "2026-11-22",
                "price_usd": 77,
                "airline": "FR",
                "flight_number": "4017",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "10:30:00",
                "arrival_time": "14:30:00",
                "duration_min": 240,
                "transfers": 1,
                "gate": "Lucky2Go",
                "ticket_id": "f9731b25eb1724cf79e5a267a3dbf591"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 101,
                "airline": "VY",
                "flight_number": "1171",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "11:45:00",
                "arrival_time": "15:50:00",
                "duration_min": 245,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "ed24c53774713a27a200b8da44460e93"
            },
            {
                "depart_date": "2026-11-21",
                "price_usd": 122,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "14:20:00",
                "arrival_time": "17:00:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "City.Travel",
                "ticket_id": "714283f55700c77d2008facc5f0865b5"
            },
            {
                "depart_date": "2026-11-22",
                "price_usd": 128,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "17:05:00",
                "arrival_time": "19:45:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "d2f7cc9577b9c3cb7b37bfed2c2700b8"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 168,
                "airline": "FR",
                "flight_number": "9325",
                "departure_airport": "OPO",
                "arrival_airport": "CGN",
                "departure_time": "22:55:00",
                "arrival_time": "01:35:00",
                "duration_min": 160,
                "transfers": 0,
                "gate": "City.Travel",
                "ticket_id": "3c49c68d8ccc5e1d08a4c97efdd38a0f"
            }
        ],
        "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": 35
            },
            {
                "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": 101
            },
            {
                "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": 174
            },
            {
                "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": 218
            },
            {
                "iata": "EW",
                "name": "Eurowings",
                "logo_url": "https://img.wway.io/pics/root/EW@png?exar=1&rs=fit:80:80",
                "is_lowcost": true,
                "routes_count": 0,
                "min_price_usd": 227
            }
        ],
        "agencies": [
            {
                "name": "Clickavia",
                "min_price_usd": 35,
                "tickets_count": 9
            },
            {
                "name": "Tickets",
                "min_price_usd": 72,
                "tickets_count": 1
            },
            {
                "name": "Lucky2Go",
                "min_price_usd": 77,
                "tickets_count": 3
            },
            {
                "name": "Kiwi.com",
                "min_price_usd": 85,
                "tickets_count": 5
            },
            {
                "name": "City.Travel",
                "min_price_usd": 122,
                "tickets_count": 4
            },
            {
                "name": "Flightnetwork",
                "min_price_usd": 174,
                "tickets_count": 2
            },
            {
                "name": "Aviakassa",
                "min_price_usd": 218,
                "tickets_count": 1
            },
            {
                "name": "Farera",
                "min_price_usd": 227,
                "tickets_count": 1
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 295,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "CGN",
                    "name": "Cologne Bonn Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Berlin"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-cgn/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-cgn",
            "qa": "https://cityvator.com/api/qa/route/opo-cgn",
            "compare": "https://cityvator.com/api/compare/opo-cgn-vs-"
        },
        "updated_at": "2026-10-20 06:34:57"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-14T10:10:42+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}