{
    "success": true,
    "data": {
        "route": {
            "origin": {
                "iata": "OPO",
                "name": "Porto",
                "country_code": "PT",
                "country_name": "Portugal",
                "is_hub": false
            },
            "destination": {
                "iata": "LON",
                "name": "London",
                "country_code": "GB",
                "country_name": "United Kingdom",
                "is_hub": false
            },
            "slug": "opo-lon"
        },
        "parameters": {
            "agencies": [
                "City.Travel",
                "Clickavia",
                "EasyJet",
                "Kiwi.com",
                "Lucky2Go",
                "Trip.com",
                "Авиасейлс"
            ],
            "agencies_count": 7,
            "airlines": [
                "A0",
                "FR",
                "TP",
                "U2"
            ],
            "airlines_count": 4,
            "airports_arrival": 6,
            "airports_arrival_list": [
                "LGW",
                "LTN",
                "STN"
            ],
            "airports_departure": 1,
            "airports_departure_list": [
                "OPO"
            ],
            "avg_duration_min": 178,
            "avg_price": 58.7347,
            "avg_transfers": 0.35,
            "cheapest_agency": "Kiwi.com",
            "cheapest_month": 12,
            "cheapest_weekday": 2,
            "departures_per_week": 2,
            "direct_airlines_list": [
                "A0",
                "FR",
                "U2"
            ],
            "direct_flights_count": 15,
            "direct_share": 65.22,
            "distance_km": 1321,
            "eco_score": 8.6,
            "flight_time_min": 123,
            "flights_found": 23,
            "has_direct": true,
            "max_duration_min": 265,
            "max_price": 202,
            "min_duration_min": 135,
            "min_price": 20,
            "min_price_1stop": 62,
            "min_price_direct": 20,
            "months_with_flights": [
                10,
                11,
                12
            ],
            "popularity_score": 1.2,
            "seasonality": 1,
            "time_diff_hours": 0
        },
        "calendar": [
            {
                "date": "2026-11-15",
                "price_usd": 48,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-16",
                "price_usd": 48,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-17",
                "price_usd": 51,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 145
            },
            {
                "date": "2026-11-18",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-19",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-20",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-21",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-22",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-23",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-24",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-25",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-26",
                "price_usd": 63,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-11-27",
                "price_usd": 74,
                "transfers": 0,
                "airline": "FR",
                "gate": "Lucky2Go",
                "duration_min": 260
            },
            {
                "date": "2026-12-07",
                "price_usd": 20,
                "transfers": 0,
                "airline": null,
                "gate": "Kiwi.com",
                "duration_min": 0
            },
            {
                "date": "2026-12-08",
                "price_usd": 20,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 145
            },
            {
                "date": "2026-12-09",
                "price_usd": 24,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-10",
                "price_usd": 24,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-11",
                "price_usd": 24,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-12",
                "price_usd": 24,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-13",
                "price_usd": 24,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-14",
                "price_usd": 27,
                "transfers": 0,
                "airline": "U2",
                "gate": "EasyJet",
                "duration_min": 140
            },
            {
                "date": "2026-12-15",
                "price_usd": 27,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-16",
                "price_usd": 27,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-17",
                "price_usd": 27,
                "transfers": 0,
                "airline": "FR",
                "gate": "Kiwi.com",
                "duration_min": 145
            },
            {
                "date": "2026-12-18",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-19",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-20",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-21",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-22",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-23",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-24",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-25",
                "price_usd": 51,
                "transfers": 0,
                "airline": null,
                "gate": null,
                "duration_min": 0
            },
            {
                "date": "2026-12-26",
                "price_usd": 75,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 265
            },
            {
                "date": "2026-12-27",
                "price_usd": 62,
                "transfers": 0,
                "airline": "FR",
                "gate": "Clickavia",
                "duration_min": 260
            }
        ],
        "variants": [
            {
                "depart_date": "2026-12-08",
                "price_usd": 20,
                "airline": "FR",
                "flight_number": "7699",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "01:25:00",
                "arrival_time": "03:50:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "d46993aba62a91350246dedf1bf4bf1e"
            },
            {
                "depart_date": "2026-12-14",
                "price_usd": 27,
                "airline": "U2",
                "flight_number": "2458",
                "departure_airport": "OPO",
                "arrival_airport": "LTN",
                "departure_time": "18:45:00",
                "arrival_time": "21:05:00",
                "duration_min": 140,
                "transfers": 0,
                "gate": "EasyJet",
                "ticket_id": "f48e147468f6576de744ac63486ee7c4"
            },
            {
                "depart_date": "2026-12-17",
                "price_usd": 27,
                "airline": "FR",
                "flight_number": "520",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "18:20:00",
                "arrival_time": "20:45:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "d9018e7c2929958651cf84ceb6272e5e"
            },
            {
                "depart_date": "2026-11-17",
                "price_usd": 51,
                "airline": "FR",
                "flight_number": "1262",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "20:45:00",
                "arrival_time": "23:10:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "1e47d48e776cce159e33bb410b159263"
            },
            {
                "depart_date": "2026-12-27",
                "price_usd": 62,
                "airline": "FR",
                "flight_number": "7634",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "10:15:00",
                "arrival_time": "14:35:00",
                "duration_min": 260,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "a3416e39ad4480c8ba92bbdf3f8d7d86"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 74,
                "airline": "FR",
                "flight_number": "5047",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "16:25:00",
                "arrival_time": "20:45:00",
                "duration_min": 260,
                "transfers": 1,
                "gate": "Lucky2Go",
                "ticket_id": "88263e9139642c98f976c17a56dd7a2a"
            },
            {
                "depart_date": "2026-12-26",
                "price_usd": 75,
                "airline": "FR",
                "flight_number": "5047",
                "departure_airport": "OPO",
                "arrival_airport": "LTN",
                "departure_time": "09:30:00",
                "arrival_time": "13:55:00",
                "duration_min": 265,
                "transfers": 1,
                "gate": "Clickavia",
                "ticket_id": "2d157ca450360634a8ed584336133918"
            },
            {
                "depart_date": "2026-11-27",
                "price_usd": 111,
                "airline": "FR",
                "flight_number": "1276",
                "departure_airport": "OPO",
                "arrival_airport": "STN",
                "departure_time": "13:30:00",
                "arrival_time": "15:55:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Kiwi.com",
                "ticket_id": "a49618099798681529178afde23a56f2"
            },
            {
                "depart_date": "2026-12-27",
                "price_usd": 127,
                "airline": "U2",
                "flight_number": "2458",
                "departure_airport": "OPO",
                "arrival_airport": "LTN",
                "departure_time": "23:00:00",
                "arrival_time": "01:25:00",
                "duration_min": 145,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "ff1097b5c03a673666cb592b7b92751c"
            },
            {
                "depart_date": "2026-12-26",
                "price_usd": 131,
                "airline": "U2",
                "flight_number": "6887",
                "departure_airport": "OPO",
                "arrival_airport": "LTN",
                "departure_time": "18:25:00",
                "arrival_time": "20:45:00",
                "duration_min": 140,
                "transfers": 0,
                "gate": "Trip.com",
                "ticket_id": "75d33bef5064689c98e628983ac5627d"
            }
        ],
        "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": 20
            },
            {
                "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": "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": 94
            },
            {
                "iata": "A0",
                "name": "BA Euroflyer",
                "logo_url": "https://img.wway.io/pics/root/A0@png?exar=1&rs=fit:80:80",
                "is_lowcost": false,
                "routes_count": 0,
                "min_price_usd": 274
            }
        ],
        "agencies": [
            {
                "name": "Kiwi.com",
                "min_price_usd": 20,
                "tickets_count": 7
            },
            {
                "name": "EasyJet",
                "min_price_usd": 27,
                "tickets_count": 1
            },
            {
                "name": "Clickavia",
                "min_price_usd": 62,
                "tickets_count": 6
            },
            {
                "name": "Trip.com",
                "min_price_usd": 65,
                "tickets_count": 5
            },
            {
                "name": "Lucky2Go",
                "min_price_usd": 72,
                "tickets_count": 2
            },
            {
                "name": "Авиасейлс",
                "min_price_usd": 118,
                "tickets_count": 1
            },
            {
                "name": "City.Travel",
                "min_price_usd": 359,
                "tickets_count": 1
            }
        ],
        "airports": {
            "departure": [
                {
                    "iata": "OPO",
                    "name": "Porto Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/Lisbon"
                }
            ],
            "arrival": [
                {
                    "iata": "LGW",
                    "name": "London Gatwick Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/London"
                },
                {
                    "iata": "LTN",
                    "name": "London Luton Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/London"
                },
                {
                    "iata": "STN",
                    "name": "Stansted Airport",
                    "iata_type": "airport",
                    "time_zone": "Europe/London"
                }
            ]
        },
        "html_url": "https://cityvator.com/en/opo-lon/",
        "api_urls": {
            "self": "https://cityvator.com/api/routes/opo-lon",
            "qa": "https://cityvator.com/api/qa/route/opo-lon",
            "compare": "https://cityvator.com/api/compare/opo-lon-vs-"
        },
        "updated_at": "2026-10-29 23:08:03"
    },
    "meta": {
        "lang": "en",
        "currency": "USD",
        "requested_at": "2026-11-15T12:10:39+03:00",
        "powered_by": "Cityvator",
        "source": "https://cityvator.com",
        "license": "CC-BY-4.0",
        "attribution": "Data source: Cityvator (https://cityvator.com)"
    }
}