{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "LYS",
                "name": "Lyon",
                "country_code": "FR",
                "country_name": "France",
                "is_hub": false
            },
            "slug": "opo-lys"
        },
        "parameters": {
            "agencies": [
                "Biletix",
                "Clickavia",
                "Kupi.com",
                "Trip.com"
            ],
            "agencies_count": 4,
            "airlines": [
                "FR",
                "NI",
                "TP",
                "U2",
                "VY"
            ],
            "airlines_count": 5,
            "airports_arrival": 2,
            "airports_arrival_list": [
                "LYS"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 163,
            "avg_price": 94.4211,
            "avg_transfers": 0.47,
            "cheapest_agency": "Biletix",
            "cheapest_month": 12,
            "cheapest_weekday": 5,
            "departures_per_week": 2,
            "direct_airlines_list": [
                "U2"
            ],
            "direct_flights_count": 10,
            "direct_share": 52.63,
            "distance_km": 1199,
            "eco_score": 8.5,
            "flight_time_min": 115,
            "flights_found": 19,
            "has_direct": true,
            "max_duration_min": 245,
            "max_price": 305,
            "min_duration_min": 120,
            "min_price": 65,
            "min_price_1stop": 66,
            "min_price_direct": 65,
            "months_with_flights": [
                1,
                11,
                12
            ],
            "popularity_score": 1,
            "seasonality": 1,
            "time_diff_hours": 1
        },
        "calendar": [
            {
                "date": "2026-11-16",
                "price_usd": 89,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 230
            },
            {
                "date": "2026-11-17",
                "price_usd": 112,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 245
            },
            {
                "date": "2026-11-18",
                "price_usd": 91,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-19",
                "price_usd": 91,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-20",
                "price_usd": 91,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-21",
                "price_usd": 91,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-22",
                "price_usd": 91,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-23",
                "price_usd": 70,
                "transfers": 0,
                "airline": "NI",
                "gate": "Trip.com",
                "duration_min": 205
            },
            {
                "date": "2026-11-24",
                "price_usd": 69,
                "transfers": 0,
                "airline": "TP",
                "gate": "Trip.com",
                "duration_min": 205
            },
            {
                "date": "2026-11-25",
                "price_usd": 70,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-26",
                "price_usd": 70,
                "transfers": 0,
                "airline": "NI",
                "gate": "Trip.com",
                "duration_min": 205
            },
            {
                "date": "2026-11-27",
                "price_usd": 65,
                "transfers": 0,
                "airline": "U2",
                "gate": "Biletix",
                "duration_min": 120
            },
            {
                "date": "2026-11-28",
                "price_usd": 67,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-29",
                "price_usd": 67,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-30",
                "price_usd": 69,
                "transfers": 0,
                "airline": "TP",
                "gate": "Trip.com",
                "duration_min": 205
            },
            {
                "date": "2026-12-01",
                "price_usd": 66,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 190
            },
            {
                "date": "2026-12-02",
                "price_usd": 66,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 190
            },
            {
                "date": "2027-01-02",
                "price_usd": 305,
                "transfers": 0,
                "airline": "U2",
                "gate": "Trip.com",
                "duration_min": 125
            },
            {
                "date": "2027-01-03",
                "price_usd": 154,
                "transfers": 1,
                "airline": "VY",
                "gate": "Kupi.com",
                "duration_min": 185
            }
        ],
        "variants": [
            {
                "depart_date": "2026-11-27",
                "price_usd": 65,
                "airline": "U2",
                "flight_number": "6803",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "09:30:00",
                "arrival_time": "11:30:00",
                "duration_min": 120,
                "transfers": 0,
                "gate": "Biletix",
                "ticket_id": "37f65519adec191535318e247a212085"
            },
            {
                "depart_date": "2026-12-01",
                "price_usd": 66,
                "airline": "FR",
                "flight_number": "4546",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "09:00:00",
                "arrival_time": "12:10:00",
                "duration_min": 190,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "d2b46b0ec471d0388e0acf40a569cd26"
            },
            {
                "depart_date": "2026-12-02",
                "price_usd": 66,
                "airline": "FR",
                "flight_number": "4546",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "10:00:00",
                "arrival_time": "13:10:00",
                "duration_min": 190,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "24d66eed88d2c16aeaf10eb382e71fb6"
            },
            {
                "depart_date": "2026-11-24",
                "price_usd": 69,
                "airline": "TP",
                "flight_number": "1933",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "21:00:00",
                "arrival_time": "00:25:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Trip.com",
                "ticket_id": "196cffc0424ef7d64c263dc49a00a51e"
            },
            {
                "depart_date": "2026-11-30",
                "price_usd": 69,
                "airline": "TP",
                "flight_number": "1933",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "21:00:00",
                "arrival_time": "00:25:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Trip.com",
                "ticket_id": "e3d6296bc29c1c0aa132b799fbd492e3"
            },
            {
                "depart_date": "2026-11-23",
                "price_usd": 70,
                "airline": "NI",
                "flight_number": "1931",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "19:00:00",
                "arrival_time": "22:25:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Trip.com",
                "ticket_id": "7ab45a61521c2e43e9c10b61a3360691"
            },
            {
                "depart_date": "2026-11-26",
                "price_usd": 70,
                "airline": "NI",
                "flight_number": "1933",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "21:00:00",
                "arrival_time": "00:25:00",
                "duration_min": 205,
                "transfers": 1,
                "gate": "Trip.com",
                "ticket_id": "b60fbaad13df16893340bca7141372de"
            },
            {
                "depart_date": "2026-11-16",
                "price_usd": 89,
                "airline": "FR",
                "flight_number": "8616",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "17:40:00",
                "arrival_time": "21:30:00",
                "duration_min": 230,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "01bc957f7c4513672b3bb183b8fdedec"
            },
            {
                "depart_date": "2026-11-26",
                "price_usd": 89,
                "airline": "U2",
                "flight_number": "6807",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "09:25:00",
                "arrival_time": "11:30:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "63fcaca1711cc7be779a58b3ca4f1d33"
            },
            {
                "depart_date": "2026-11-23",
                "price_usd": 109,
                "airline": "U2",
                "flight_number": "4432",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "18:55:00",
                "arrival_time": "21:00:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "a0c79e9566e9823b5327e5cb631f0331"
            },
            {
                "depart_date": "2026-11-30",
                "price_usd": 110,
                "airline": "U2",
                "flight_number": "4432",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "18:55:00",
                "arrival_time": "21:00:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "51335a8827082bffe78abb5dd9d09796"
            },
            {
                "depart_date": "2026-12-02",
                "price_usd": 111,
                "airline": "U2",
                "flight_number": "6807",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "21:25:00",
                "arrival_time": "23:30:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "976cf0ec4f0abc6c467c3dcfab1a8fb9"
            },
            {
                "depart_date": "2026-11-17",
                "price_usd": 112,
                "airline": "FR",
                "flight_number": "520",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "09:10:00",
                "arrival_time": "13:15:00",
                "duration_min": 245,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "fd5ea449998627fbcc9910199d3a15c7"
            },
            {
                "depart_date": "2026-12-01",
                "price_usd": 121,
                "airline": "U2",
                "flight_number": "6807",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "20:30:00",
                "arrival_time": "22:35:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "fb6c551d72e6a017ceee04c5d4785465"
            },
            {
                "depart_date": "2026-11-24",
                "price_usd": 153,
                "airline": "U2",
                "flight_number": "6807",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "20:30:00",
                "arrival_time": "22:35:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "6ea2763149b4775649c290809d0f3ae4"
            },
            {
                "depart_date": "2027-01-03",
                "price_usd": 154,
                "airline": "VY",
                "flight_number": "1183",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "00:55:00",
                "arrival_time": "04:00:00",
                "duration_min": 185,
                "transfers": 1,
                "gate": "Kupi.com",
                "ticket_id": "185e6608ae1530bc3145b101560ab126"
            },
            {
                "depart_date": "2026-11-16",
                "price_usd": 249,
                "airline": "U2",
                "flight_number": "6803",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "15:45:00",
                "arrival_time": "17:50:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "12876cee239296659707a92c80da6565"
            },
            {
                "depart_date": "2027-01-02",
                "price_usd": 305,
                "airline": "U2",
                "flight_number": "4432",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "12:30:00",
                "arrival_time": "14:35:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "6b4ad451875e296aaade93f14f5ec566"
            },
            {
                "depart_date": "2026-11-17",
                "price_usd": 330,
                "airline": "U2",
                "flight_number": "6807",
                "departure_airport": "OPO",
                "arrival_airport": "LYS",
                "departure_time": "20:30:00",
                "arrival_time": "22:35:00",
                "duration_min": 125,
                "transfers": 0,
                "gate": "Biletix",
                "ticket_id": "49de75c0551b4e0c3b1adfd0f8c1b34e"
            }
        ],
        "airlines": [
            {
                "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": 65
            },
            {
                "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": 66
            },
            {
                "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": 69
            },
            {
                "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": 70
            },
            {
                "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": 154
            }
        ],
        "agencies": [
            {
                "name": "Biletix",
                "min_price_usd": 65,
                "tickets_count": 2
            },
            {
                "name": "Clickavia",
                "min_price_usd": 66,
                "tickets_count": 4
            },
            {
                "name": "Trip.com",
                "min_price_usd": 69,
                "tickets_count": 12
            },
            {
                "name": "Kupi.com",
                "min_price_usd": 154,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "LYS",
                    "name": "Lyon Saint-Exupery International Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Paris"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-lys/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-lys",
            "qa": "https://cityvator.com/api/qa/route/opo-lys",
            "compare": "https://cityvator.com/api/compare/opo-lys-vs-"
        },
        "updated_at": "2026-11-09 06:51:01"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T16:12:31+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}